<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<meta name="theme-color" content="#222"><meta name="generator" content="Hexo 6.1.0">


  <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon.png">
  <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32.png">
  <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16.png">
  <link rel="mask-icon" href="/images/logo.svg" color="#222">

<link rel="stylesheet" href="/css/main.css">



<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.1.1/animate.min.css">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.min.css">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/pace/1.2.4/themes/green/pace-theme-minimal.css">
  <script src="https://cdnjs.cloudflare.com/ajax/libs/pace/1.2.4/pace.min.js" integrity="sha256-gqd7YTjg/BtfqWSwsJOvndl0Bxc8gFImLEkXQT8+qj0=" crossorigin="anonymous"></script>

<script class="next-config" data-name="main" type="application/json">{"hostname":"liukairui.me","root":"/","images":"/images","scheme":"Muse","darkmode":false,"version":"8.10.1","exturl":false,"sidebar":{"position":"left","display":"hide","padding":18,"offset":12},"copycode":true,"bookmark":{"enable":false,"color":"#222","save":"auto"},"mediumzoom":false,"lazyload":true,"pangu":true,"comments":{"style":"tabs","active":"valine","storage":true,"lazyload":false,"nav":null,"activeClass":"valine"},"stickytabs":false,"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"fadeInDown","post_body":"fadeInDown","coll_header":"fadeInLeft","sidebar":"fadeInUp"}},"prism":false,"i18n":{"placeholder":"搜索...","empty":"没有找到任何搜索结果：${query}","hits_time":"找到 ${hits} 个搜索结果（用时 ${time} 毫秒）","hits":"找到 ${hits} 个搜索结果"},"path":"/search.xml","localsearch":{"enable":true,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false}}</script><script src="/js/config.js"></script>

    <meta name="description" content="你管着叫查漏补缺? 这**叫女娲补天. 呜呜呜~">
<meta property="og:type" content="article">
<meta property="og:title" content="JavaScript红宝书查漏补缺🔒">
<meta property="og:url" content="http://liukairui.me/article/JavaScript%E7%BA%A2%E5%AE%9D%E4%B9%A6%E6%9F%A5%E6%BC%8F%E8%A1%A5%E7%BC%BA/">
<meta property="og:site_name" content="LiuKairui Website">
<meta property="og:description" content="你管着叫查漏补缺? 这**叫女娲补天. 呜呜呜~">
<meta property="og:locale" content="zh_CN">
<meta property="article:published_time" content="2022-02-28T17:00:01.000Z">
<meta property="article:modified_time" content="2022-03-08T08:22:38.658Z">
<meta property="article:author" content="Liu Kairui">
<meta property="article:tag" content="前端">
<meta property="article:tag" content="JavaScript">
<meta name="twitter:card" content="summary">


<link rel="canonical" href="http://liukairui.me/article/JavaScript%E7%BA%A2%E5%AE%9D%E4%B9%A6%E6%9F%A5%E6%BC%8F%E8%A1%A5%E7%BC%BA/">



<script class="next-config" data-name="page" type="application/json">{"sidebar":"","isHome":false,"isPost":true,"lang":"zh-CN","comments":true,"permalink":"http://liukairui.me/article/JavaScript%E7%BA%A2%E5%AE%9D%E4%B9%A6%E6%9F%A5%E6%BC%8F%E8%A1%A5%E7%BC%BA/","path":"article/JavaScript红宝书查漏补缺/","title":"JavaScript红宝书查漏补缺🔒"}</script>

<script class="next-config" data-name="calendar" type="application/json">""</script>
<title>JavaScript红宝书查漏补缺🔒 | LiuKairui Website</title>
  

  <script src="/js/third-party/analytics/baidu-analytics.js"></script>
  <script async src="https://hm.baidu.com/hm.js?ea07bceb8f5fa721da2ebf01833faa32"></script>



<div class="nindexBK">
<div class="nindexBKC"></div>
<div class="nindex">
  <h1>Hey👋</h1>
  <p style="font-weight: 500; font-size: 2.2em">欢迎访问Liu Kairui的个人站.</p>
  <p>
      我是一个来自重庆的在校大学生, 偏爱于前端技术<!--与OS设计-->, 偶尔使用 JS / Go 进行轻量项目开发, 欢迎访问我的
      <a href="https://github.com/KairuiLiu" target="_blank"><i class="fab fa-github-alt"></i> GitHub</a> .
  </p>
  <p>
      这个网站主要用来存储学习 / 瞎搞的笔记, 同时提供了邮件、图床等服务. 对于一些自认为有趣的<a href="javascript:;" id="myProj">项目</a>, 我也会将项目介绍, 文档, 甚至是设计指南发布在这里.
  </p>
  <ul>
    <li><p><a href="/artrank/" target="_blank">ArtRank</a>: 基于Node.JS的PageRank文献管理推荐系统</p></li>
    <li><p><a href="/gooj/" target="_blank">GoOJ</a>: 基于Golang的高校在线评测系统</p></li>
    <li><p><a href="/projects/" target="_blank">更多 <i class="fas fa-angle-right"></i></a></p></li>

  </ul>
  <p>
      可以在这些平台找到我: 
      <a href="https://www.zhihu.com/people/liu-kai-rui-18" target="_blank">知乎</a>,
      <a href="https://space.bilibili.com/33238144" target="_blank">bilibili</a>
      和
      <a href="https://www.coolapk.com/u/805314?from=qr" target="_blank">酷安</a>.
  </p>

  <p>
      下滑即可进入博客 <i class="fas fa-arrow-down"></i>
  </p>
</div>
</div>  

 
<script>
  var OriginTitile = document.title;
  var titleTime;
  document.addEventListener("visibilitychange", function() {
    if (document.hidden) {
      document.title = "谢谢离开 | " + OriginTitile;
      clearTimeout(titleTime);
    } else {
      document.title = "欢迎归来 | " + OriginTitile;
      titleTime = setTimeout(function() {
        document.title = OriginTitile;
      }, 2000);
    }
  });
</script>


<script>
  function checkIndex(){
    let nindexItems = [[".nindexBK","display","block","none"],[".headband","display","none","block"],["div.toggle.sidebar-toggle","visibility","hidden","visible"]]; // ,["button.darkmode-toggle","visibility","hidden","visible"]];
    let isIndex = new RegExp("^(\/){0,1}(index){0,1}(\.html){0,1}(/)*$").test(location.pathname);
    let backCanvas = document.querySelector(".nindexBK");
    nindexItems.dispShift = function (stat){this.forEach((e) => {try{document.querySelector(e[0]).style[e[1]]=e[2+stat];}catch{}})}
    if(isIndex){
      nindexItems.dispShift(0);
      window.onscroll=function(){
        if(document.documentElement.scrollTop>backCanvas.offsetHeight*1.05){
          nindexItems.dispShift(1);window.onscroll=null;
        }
      }
      document.querySelector("#myProj").onclick=()=>{
        let projlist = document.querySelector(".nindex>ul");
        projlist.className.indexOf("ulactive")==-1?projlist.classList.add("ulactive"):projlist.classList.remove("ulactive")
      }
    }else nindexItems.dispShift(1);
  }
  checkIndex();
</script>

<!--<script src="https://sdk.jinrishici.com/v2/browser/jinrishici.js" charset="utf-8"></script>-->

  <noscript>
    <link rel="stylesheet" href="/css/noscript.css">
  </noscript>
<link rel="alternate" href="/atom.xml" title="LiuKairui Website" type="application/atom+xml">
<style>.darkmode--activated{--body-bg-color:#282828;--content-bg-color:#333;--card-bg-color:#555;--text-color:#ccc;--blockquote-color:#bbb;--link-color:#ccc;--link-hover-color:#eee;--brand-color:#ddd;--brand-hover-color:#ddd;--table-row-odd-bg-color:#282828;--table-row-hover-bg-color:#363636;--menu-item-bg-color:#555;--btn-default-bg:#222;--btn-default-color:#ccc;--btn-default-border-color:#555;--btn-default-hover-bg:#666;--btn-default-hover-color:#ccc;--btn-default-hover-border-color:#666;--highlight-background:#282b2e;--highlight-foreground:#a9b7c6;--highlight-gutter-background:#34393d;--highlight-gutter-foreground:#9ca9b6}.darkmode--activated img{opacity:.75}.darkmode--activated img:hover{opacity:.9}.darkmode--activated code{color:#69dbdc;background:0 0}button.darkmode-toggle{z-index:9999}.darkmode-ignore,img{display:flex!important}</style></head>

<body itemscope itemtype="http://schema.org/WebPage" class="use-motion">
  <div class="headband"></div>

  <main class="main">
    <header class="header" itemscope itemtype="http://schema.org/WPHeader">
      <div class="header-inner"><div class="site-brand-container">
  <div class="site-nav-toggle">
    <div class="toggle" aria-label="切换导航栏" role="button">
        <span class="toggle-line"></span>
        <span class="toggle-line"></span>
        <span class="toggle-line"></span>
    </div>
  </div>

  <div class="site-meta">

    <a href="/" class="brand" rel="start">
      <i class="logo-line"></i>
      <p class="site-title">LiuKairui Website</p>
      <i class="logo-line"></i>
    </a>
      <p class="site-subtitle" itemprop="description">要有信仰</p>
  </div>

  <div class="site-nav-right">
    <div class="toggle popup-trigger">
        <i class="fa fa-search fa-fw fa-lg"></i>
    </div>
  </div>
</div>



<nav class="site-nav">
  <ul class="main-menu menu">
        <li class="menu-item menu-item-home"><a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a></li>
        <li class="menu-item menu-item-categories"><a href="/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类</a></li>
        <li class="menu-item menu-item-tags"><a href="/tags/" rel="section"><i class="fas fa-hashtag fa-fw"></i>标签</a></li>
        <li class="menu-item menu-item-收藏夹"><a href="/favorites/" rel="section"><i class="fab fa-gratipay fa-fw"></i>收藏夹</a></li>
        <li class="menu-item menu-item-留言板"><a href="/messageBoard/" rel="section"><i class="fab fa-facebook-messenger fa-fw"></i>留言板</a></li>
        <li class="menu-item menu-item-项目"><a href="/projects/" rel="section"><i class="fa fa-satellite fa-fw"></i>项目</a></li>
        <li class="menu-item menu-item-图床"><a href="http://img.liukairui.me/" rel="noopener" target="_blank"><i class="fa fa-bed fa-fw"></i>图床</a></li>
        <li class="menu-item menu-item-云ide"><a href="http://vsc.liukairui.me/" rel="noopener" target="_blank"><i class="fas fa-code fa-fw"></i>云IDE</a></li>
        <li class="menu-item menu-item-about"><a href="/about/" rel="section"><i class="fa fa-user fa-fw"></i>关于</a></li>
        <li class="menu-item menu-item-邮箱"><a href="http://mail.liukairui.me/mail" rel="noopener" target="_blank"><i class="fas fa-envelope-open-text fa-fw"></i>邮箱</a></li>
        <li class="menu-item menu-item-rss"><a href="/atom.xml" rel="section"><i class="fa fa-rss fa-fw"></i>RSS</a></li>
      <li class="menu-item menu-item-search">
        <a role="button" class="popup-trigger"><i class="fa fa-search fa-fw"></i>搜索
        </a>
      </li>
  </ul>
</nav>



  <div class="search-pop-overlay">
    <div class="popup search-popup"><div class="search-header">
  <span class="search-icon">
    <i class="fa fa-search"></i>
  </span>
  <div class="search-input-container">
    <input autocomplete="off" autocapitalize="off" maxlength="80"
           placeholder="搜索..." spellcheck="false"
           type="search" class="search-input">
  </div>
  <span class="popup-btn-close" role="button">
    <i class="fa fa-times-circle"></i>
  </span>
</div>
<div class="search-result-container no-result">
  <div class="search-result-icon">
    <i class="fa fa-spinner fa-pulse fa-5x"></i>
  </div>
</div>

    </div>
  </div>

</div>
        
  
  <div class="toggle sidebar-toggle" role="button">
    <span class="toggle-line"></span>
    <span class="toggle-line"></span>
    <span class="toggle-line"></span>
  </div>

  <aside class="sidebar">

    <div class="sidebar-inner sidebar-overview-active">
      <ul class="sidebar-nav">
        <li class="sidebar-nav-toc">
          文章目录
        </li>
        <li class="sidebar-nav-overview">
          站点概览
        </li>
      </ul>

      <div class="sidebar-panel-container">
        <!--noindex-->
        <div class="post-toc-wrap sidebar-panel">
        </div>
        <!--/noindex-->

        <div class="site-overview-wrap sidebar-panel">
          <div class="site-author site-overview-item animated" itemprop="author" itemscope itemtype="http://schema.org/Person">
    <img class="site-author-image" itemprop="image" alt="Liu Kairui"
      src="/images/avatar.jpg">
  <p class="site-author-name" itemprop="name">Liu Kairui</p>
  <div class="site-description" itemprop="description">LiuKairui Persional Website</div>
</div>
<div class="site-state-wrap site-overview-item animated">
  <nav class="site-state">
      <div class="site-state-item site-state-posts">
        <a href="/archives/">
          <span class="site-state-item-count">45</span>
          <span class="site-state-item-name">日志</span>
        </a>
      </div>
      <div class="site-state-item site-state-categories">
          <a href="/categories/">
        <span class="site-state-item-count">24</span>
        <span class="site-state-item-name">分类</span></a>
      </div>
      <div class="site-state-item site-state-tags">
          <a href="/tags/">
        <span class="site-state-item-count">53</span>
        <span class="site-state-item-name">标签</span></a>
      </div>
  </nav>
</div>
  <div class="links-of-author site-overview-item animated">
      <span class="links-of-author-item">
        <a href="https://github.com/KairuiLiu" title="GitHub → https:&#x2F;&#x2F;github.com&#x2F;KairuiLiu" rel="noopener" target="_blank"><i class="fab fa-github fa-fw"></i>GitHub</a>
      </span>
      <span class="links-of-author-item">
        <a href="mailto:tclkr@live.com" title="E-Mail → mailto:tclkr@live.com" rel="noopener" target="_blank"><i class="fa fa-envelope fa-fw"></i>E-Mail</a>
      </span>
      <span class="links-of-author-item">
        <a href="https://qm.qq.com/cgi-bin/qm/qr?k=oaf3ToOlN17hr5sHV98bT8qxsNYGaw5L&noverify=0" title="QQ → https:&#x2F;&#x2F;qm.qq.com&#x2F;cgi-bin&#x2F;qm&#x2F;qr?k&#x3D;oaf3ToOlN17hr5sHV98bT8qxsNYGaw5L&amp;noverify&#x3D;0" rel="noopener" target="_blank"><i class="fab fa-qq fa-fw"></i>QQ</a>
      </span>
      <span class="links-of-author-item">
        <a href="/atom.xml" title="RSS → &#x2F;atom.xml"><i class="fa fa-rss fa-fw"></i>RSS</a>
      </span>
      <span class="links-of-author-item">
        <a href="https://liukairui.blog.csdn.net/" title="CSDN → https:&#x2F;&#x2F;liukairui.blog.csdn.net" rel="noopener" target="_blank"><i class="fab fa-cuttlefish fa-fw"></i>CSDN</a>
      </span>
      <span class="links-of-author-item">
        <a href="http://liukairui.cc/" title="国内站点 → http:&#x2F;&#x2F;liukairui.cc" rel="noopener" target="_blank"><i class="fa fa-globe fa-fw"></i>国内站点</a>
      </span>
  </div>
  <div class="cc-license site-overview-item animated" itemprop="license">
    <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh" class="cc-opacity" rel="noopener" target="_blank"><img src="https://cdnjs.cloudflare.com/ajax/libs/creativecommons-vocabulary/2020.11.3/assets/license_badges/small/by_nc_sa.svg" alt="Creative Commons"></a>
  </div>


  <div class="links-of-blogroll site-overview-item animated">
    <div class="links-of-blogroll-title"><i class="fa fa-link fa-fw"></i>
      友情链接
    </div>
    <ul class="links-of-blogroll-list">
        <li class="links-of-blogroll-item">
          <a href="https://paste.ubuntu.com/" title="https:&#x2F;&#x2F;paste.ubuntu.com&#x2F;" rel="noopener" target="_blank">Ubuntu Pastebin</a>
        </li>
        <li class="links-of-blogroll-item">
          <a href="https://send.firefox.com/" title="https:&#x2F;&#x2F;send.firefox.com&#x2F;" rel="noopener" target="_blank">Firefox Send</a>
        </li>
        <li class="links-of-blogroll-item">
          <a href="https://jkwzs.cn/" title="https:&#x2F;&#x2F;jkwzs.cn&#x2F;" rel="noopener" target="_blank">南花醉笔丶の个人博客</a>
        </li>
        <li class="links-of-blogroll-item">
          <a href="https://ywrby.cn/" title="https:&#x2F;&#x2F;ywrby.cn&#x2F;" rel="noopener" target="_blank">Ywrby个人博客</a>
        </li>
    </ul>
  </div>

        </div>
      </div>
    </div>
  </aside>
  <div class="sidebar-dimmer"></div>


    </header>

    
  <div class="back-to-top" role="button" aria-label="返回顶部">
    <i class="fa fa-arrow-up"></i>
    <span>0%</span>
  </div>
  <div class="reading-progress-bar"></div>

<noscript>
  <div class="noscript-warning">Theme NexT works best with JavaScript enabled</div>
</noscript>


    <div class="main-inner post posts-expand">


  


<div class="post-block">
  
  

  <article itemscope itemtype="http://schema.org/Article" class="post-content" lang="zh-CN">
    <link itemprop="mainEntityOfPage" href="http://liukairui.me/article/JavaScript%E7%BA%A2%E5%AE%9D%E4%B9%A6%E6%9F%A5%E6%BC%8F%E8%A1%A5%E7%BC%BA/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="image" content="/images/avatar.jpg">
      <meta itemprop="name" content="Liu Kairui">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="LiuKairui Website">
      <meta itemprop="description" content="LiuKairui Persional Website">
    </span>
    
    <span hidden itemprop="post" itemscope itemtype="http://schema.org/CreativeWork">
      <meta itemprop="name" content="JavaScript红宝书查漏补缺🔒 | LiuKairui Website">
      <meta itemprop="description" content="你管着叫查漏补缺? 这**叫女娲补天. 呜呜呜~">
    </span>
      <header class="post-header">
        <h1 class="post-title" itemprop="name headline">
          JavaScript红宝书查漏补缺🔒
        </h1>

        <div class="post-meta-container">
          <div class="post-meta">
    <span class="post-meta-item">
      <span class="post-meta-item-icon">
        <i class="far fa-calendar"></i>
      </span>
      <span class="post-meta-item-text">发表于</span>

      <time title="创建时间：2022-03-01 01:00:01" itemprop="dateCreated datePublished" datetime="2022-03-01T01:00:01+08:00">2022-03-01</time>
    </span>
    <span class="post-meta-item">
      <span class="post-meta-item-icon">
        <i class="far fa-folder"></i>
      </span>
      <span class="post-meta-item-text">分类于</span>
        <span itemprop="about" itemscope itemtype="http://schema.org/Thing">
          <a href="/categories/%E5%89%8D%E7%AB%AF/" itemprop="url" rel="index"><span itemprop="name">前端</span></a>
        </span>
          ，
        <span itemprop="about" itemscope itemtype="http://schema.org/Thing">
          <a href="/categories/%E5%89%8D%E7%AB%AF/JS/" itemprop="url" rel="index"><span itemprop="name">JS</span></a>
        </span>
    </span>

  
    <span id="/article/JavaScript%E7%BA%A2%E5%AE%9D%E4%B9%A6%E6%9F%A5%E6%BC%8F%E8%A1%A5%E7%BC%BA/" class="post-meta-item leancloud_visitors" data-flag-title="JavaScript红宝书查漏补缺🔒" title="阅读次数">
      <span class="post-meta-item-icon">
        <i class="far fa-eye"></i>
      </span>
      <span class="post-meta-item-text">阅读次数：</span>
      <span class="leancloud-visitors-count"></span>
    </span>
  
  <span class="post-meta-item">
    
    <span class="post-meta-item-icon">
      <i class="far fa-comment"></i>
    </span>
    <span class="post-meta-item-text">Valine：</span>
  
    <a title="valine" href="/article/JavaScript%E7%BA%A2%E5%AE%9D%E4%B9%A6%E6%9F%A5%E6%BC%8F%E8%A1%A5%E7%BC%BA/#valine-comments" itemprop="discussionUrl">
      <span class="post-comments-count valine-comment-count" data-xid="/article/JavaScript%E7%BA%A2%E5%AE%9D%E4%B9%A6%E6%9F%A5%E6%BC%8F%E8%A1%A5%E7%BC%BA/" itemprop="commentCount"></span>
    </a>
  </span>
  
  

<script>
    CONFIG.hostname = location.hostname;
</script>
    <span class="post-meta-break"></span>
    <span class="post-meta-item" title="本文字数">
      <span class="post-meta-item-icon">
        <i class="far fa-file-word"></i>
      </span>
      <span class="post-meta-item-text">本文字数：</span>
      <span>52k</span>
    </span>
    <span class="post-meta-item" title="阅读时长">
      <span class="post-meta-item-icon">
        <i class="far fa-clock"></i>
      </span>
      <span class="post-meta-item-text">阅读时长 &asymp;</span>
      <span>47 分钟</span>
    </span>
</div>

            <div class="post-description">你管着叫查漏补缺? 这**叫女娲补天. 呜呜呜~</div>
        </div>
      </header>

    
    
    
    <div class="post-body" itemprop="articleBody">
        <div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="抱歉, 这个密码看着不太对, 请再试试." data-whm="抱歉, 这个文章不能被校验, 不过您还是能看看解密后的内容.">
  <script id="hbeData" type="hbeData" data-hmacdigest="b092c6aeb3b18b740c4d61188cca90a31219feca1992e78c28af360cba006d28">ee3cf4bc924aeda5b6a9dd6406e9887b7787b97e398cf3e8437e9f4864d3531ce549de48e7bdc7272c2f52691e75e5905586d129e774ac55d7f019f57d4a788b224b1befd13abbf55496776e723581d0f32d0ab8c6052906d4cde3f6e53c21bb7de710d10da279231f40a11fb8cd930f8e5bdc52f7d53e559222cdd86b5f8b666acf5c32300ce424c7d7511e63e1c45c5b34a83c2b16669dd456432b31e1b576cb62dcef783f0de4f263413995e08d5a82a48152278bf3b5a4af40b2e642d451810942b54217e1a08aa69b8ca411ff689cddea3d19e86a95f47945dbd25cddd0c105931fd8523e639600e3c2e9d18c776a0c58a012e46bffa14e8ad8316bc6679f6dbfb1733270fd704c36d44cc9cbd080ed4e608bfccb4b438675d6dd28a3c812f63791d2c606d7b4708bd4569f3f0c61b1d469b581f6b9a6037c267179fdd66a6c9122593d6a35cfbd027196c41c03815a9dab8d1e61c14b832e26255379415b315597d8027d3047da57e4d5f68f21e17e9a98b3c55d653ca610dd90c93e8eb53868c631a3a77f9f6b204086a755f1646a93c5d888d7a4596858a7900cdffbc2b6a75a71e38fd531fe37b164224e1b19ac4a1303a70fbd08bb006eeddd37c3b949b342cf3f8b502d7c6f372520eadadcf08f49c6f5dabd98a2ae4982201100c105b901c294013372fd81f8a84db5a91451d4e3a6379eff0091abd0f8575c31ec44462324628b5fea1dba4a0bd9af8113fa2482587f7a371bd1ab4d6d7488f942e12c44e41d76daca1b63e1009fed41e2b64e99e98296d1ba5e3e1eb3649a8164bd9c04e5e15ff6a0fce89e3ecb6e7adb886e66f38dad264d2c5c52abbc65c1011ac19d9d7364ed298dbbcd25e295086c4c20b960642f1df4e531601bb7b124e861f6049916d15d2a5a635aa62f4281f6f1f00afac9dcb1143daca7f096c25a19f2d32107c4cd4b5bd07244ba9c00000bf4f7a6de48349160f01a6e3fb59fc5f69c1e239e3c8bccf7e60c65edc9c6becbd017b8db5cf214aebdadb31d40cb1fd79d22aa31cec0898836e998acca1cd1fc685422105255171689841b2ba33a93e2105cd461973d751e9ab71f5f1d4bb251c074f2fee79459e150c6ac886b993c9205bff965f6f590a62829e091c2a46e5fa1fed43c4971b406d47bee291715242a833938157909a303cac538be82b96c8bf6d24ab1739c457dcc33e68d0edfd3e2a03b327643d4dd32a7b15b2b6a4f6fe7bcb672e245dd74dfe949bcf7275a20ec8ce89f6bf6b364764b1bb1a0f7f028f21b9c02db32720d178fcca8ecc2ec34c54b74e192bde3dd9403e172382532b300576b093d7c1de1ad36d15f9e3dcc1b87926341332ad55f4769a9c385442df44e84dfb2fb8c8cca67e6665d376c847a82db13bfd554844a098b46218c2da336f3f230bc19c57749166dcc3699f927e75730fea13f0a473947a4d64fa4a13ae55281e103ec80c2776d5f285118618ed19e0b715035501ab2eda900c20fec5e488cfc08bfbe3bb512ad83fe5ee6f21fee174c08ee57b7f938dd9de876c90e962cc9d73c8bf493a4ef8d330d3e0ed3841974f95eadb6f4413ffd25b1957474cec1650a2c0d4c2cdc242d86a447744e864f2fdc9f3434a870df489ab2c2fff49c8adcf0184bcf8d2a4814cdd7874d52d77540f60ef1c4ffa9de72adfe3f43769382034182a0ea2150d4583b76a8070b21aeb07f799720d39b48648a77dd93767d59b3664feb48cb558e48f0a0f20a3da638ef759ab2933e81f1deac3f020f22c5407c84cfe0f725b9ac7d7ef56b777bd3f9ed90bc0cb939d3c75c4d5f6d8dc3303edb64025bbf7ce19f520ed7b3b3fd83b206ead7f81e46029d906699e577e654ca0b26cdb248a83bc97463abc9c4a07125740ad893ba2bf67f87c3803dda009f24009c6e4f2fb580ee3e8b26cb52b351185e0df0dd52f9cd13786b90c915211685c55becb6de53a3d02e69692f0966a6255ad24f19b87c65923b64ac55d5ba6458cb955111dbcbd23a22321a9e52837194b252b4a1cf44c040b0b583f55cba5488ea00cdd1d9b99d4c361cf0ce7d01d19d1775ece5de4c170eb7d63a635cf4b3761a8474a19d18415be8811645a36089335deea460b2b1894308df126d731c86807370514c7a383d772ca04511e5f1a78005da176d53e63ff1921b62f2bf671413eb84f5f44307336f8e02b7a31c2659f63ec3ddfb449f31329d4913dfab8a4dffadd7c312b6df9e509500b89626883330a2f24e130714e063fff5b563038b1b1e06ef6828d50fc25ae5f11245c0da07d78624d04a8f6938cd45ae53aa6c13271bd55a9cacef225823154fe1712cf412eba6566a670882b76bbf38af6da3f86bad23d82659c642172748f6945fe55b0db226a461c29a6a503e5b49bffba5b7e9edfe894944b885b8862e510f5111e52ea3e58106407a0b9c7cd41001cfe8b5c1103fd649b05f850adcaebb6fe07151786c1c2ab3a11e21a8f0603cf4148beae530597155a2ecfa24ba58bc56d6aa5a6308d079c5a2bb6dedf7c5b45f06638d1581842631cc2628f225202eaead50f0b89a792760a8982c96b535a344269cfec9ce9587bf028fab3e8c64db568176ff8020613c1eb21a29e8a1df295fc0621894672f817dbccb003fc704a397d4f5cd64a4ee491dd4db56c6126ed80707fa732826afa574c9bb7ca761331031421e8dd761a333d6e2b2c7e8b3bb5976e3f0c0e7965babef3b548e5fb585d31abee6236d1a7874743838159938bb24d1ca32d10b4e36c7103c3a2777339e2af3aff3b25af6d7225d5c06464cb15ac2037f08480ad0bdae7fa4c385d4852a2444f9019defe1a469f5246328dade5b4c1fa5231f0ed633c96674ab57a0639b4bf932736b62f09b9b750dd9fe224dd5d536b251c42e9118749601e2cfd3c3c13e9bfdaa084699c36a279c0db9c058c2e750ddd7175d52af255b634b5de40252a6a9ae0c2a40f5e97882d653a3c4cae30c2b450f5dafb578a094e49d3a329f4795813d1b7ba7740a5ed0c1c7eaada93de8f21e0cc5277159206d5861d3dddf55082d7a69484e7c5240a4feb232ebdc186e359c50cd36fcb2260b0ac22be75b664d94b76c9e9f40ddc7c1724aae95ee8838215aa50555793ca9a224a4df964b378344e186eef0c896680266486e2c27de33e94bca276d3db3eebe28f4befebe5c635277e366bc4e08eaa808989046f4a8fa6d21eb842e25a68825f20b8672601fc7037ab6fa44b0e5ebb4ee51b84e1ddf057509213d312c2672d1ae4628dc8844d479c5d7af8bc744fffa266be803202cb1a6987a862b1c4505e17d78142c9c5dc5a5d193432db33561484d74583fd2f5ae1b223c23609f28fbd88e21e2bbad4c2818921249beb7fc62c8ed8a86088410139b756cf7026d92129c2ef0ccb53c935f6b9b94de96c35046cdf0c7af47ca42782127474f88d9eab142c0f21f77eed5592e61515402dfbad6ecd586256aba2ff0a247c1806455078e7d2caac66fa5f60f5e39e171d7b7774e3e7cdbecc2212df8a24bfe8e105a93040d93272f7baacaff8de559316bb7746aca7f9b23938a09dacaa19844b99731e420d3c2fa8aab7c04d072c2ef93ac6bc61d78504f2d2dc17cc2e83055645a98095612b46dcc10027fa6aea5f9b0bc61f5e2bf006f2c0073b2ba31ba0ea28f4e0c2777d3eac378e599e8c815c68785dd46bdadf64be0a717a128ab17f3fd930565c999d9b87a622d13aa8bc19b62d0d3222cbc5f0e9e30b685a77b5571b93660e6ca37cc0bf6e68731a8195d1542a59130ab0e05cf451a97bda59ea7cb1e7c3a441d8ab76343e802e4fd72b5ae5777eb2af612912d8a9cb493f1bd98e41e23d92226cecfa305a9f08faa3d2b88fb7279342d8dad157ab1e6fd21bc989de8fd3bf25126e13b2f7359be51b95ffad41a107eb0c15f3ed753c0aa093628962be047da03d4fb146b321ae0dad26644e15845f3e0cb5273e70ed4e0679ea92011e52ef2313862a6ed03d1406f8348e686250b5bad5973696678b5c183f98c1879dc4681d9a89cb92d55a3f60a57858e8bf68b98960e042423403e117d7aa90a53b36ccabd14dbe4104a6fcd63213888061e3f72f0516be8df958dfba5940086db438919245a8f0e4cd5f172c2c914471bfccc76b9e0847302c7fd1ddf1249e1752d4d9403eb04e92d06eb13d517f6d6bd4b28ce5976fd9dd8907bc47698cbac119b0c6fca985f5b07a9e92ef713a5c3cb34d1168db91b2667865da1d62c35f0366d97e8e2810e0f82c2e34457ad7b6f992141adb72814ab72dd426ee7851b78f51b099b8c0f51a21db3a024ac8cb5cb25ff490b379e28f20d5109a850e55a832e3bd25f5995ef4ffb51a7dca61812d5802582bbbc7336a8136d26787aa1a87c22ab1709c5baa0939fb9e24d8fc5554757fbc95391ff427dcc8765080b4c416b56c8cc99c4aacc5663ac9ed80a097d9f21beaf0446fa032b421fade8312a3ed12042624d9b3f39fff42cdca9615ceb21463a3057520a0fed70d59a6a1ad06daa1ef73bdb4553d05c782c1abe569e2bbefca2b541b217ebc68324d91af1f0fc5b90772adeacb9c23c0f7693f77e95010e45b2c5368e1551264f5c9b75c7f7cd701a74d4d605373d842856fdedc5b924c62650bd2709bf14fbb9efc239ba59c0a8c81b92a8b8554e23eaaee70ffb87b27d73f72151fbf246069f0e3434f791ed5af3d58724ab8c9f409f5d58bce89d28ded311634e7c1736d09c974552e502d365d15709c66ad8369e6537c1090df956215ae15839d81e8a76cb942e75bbba72a4e8d0aecafd143b029bce7df50ea28b513af6faed3dc6d4660f1318ffb6c51b2b79e25004b14113b482e2609239385f7939fe970c9eb7c2ce756805dcf589e0d66f6668a697b511bd5ede69c8ee7593b8f0298192f5fe6f8dd042061f04dadae610f5c548359871c5cff0857d9edfe4b326f8cb4fc0ecc4f987468b0ee92310396a63daac4d3bf626e3d2f876b555e4d9be69c62f5b2384adc3d336454cc9ab21a3b1a8b9776e0f352de1740776faaa374dc329e35ec57c6b11f7b262fe1d32725b6d2411501431735a7fca67fafc77a70aa575b175e918f32201b7ff7438ebfb9902bf68171703e6392af2c870a46e057f90664201d85dc370331ade08532151e7feb4318cb1ad7777d45a6b5d3fb1d27cca4c3e3c75217f159cbb5344c31a1b5a75d5db5fd7e42850de1b5a105884348e091ab89e3b6939a5a14f73d3320acd41fdda8b2cb55ce0947d6238d86b6df2d0acb1a079e6d8c521e7c3fa33c34a4911204a66282820c97123280b724ff5db803aea9b0e5d40a3e9e7f02090c39f47105b0b2ecf48ba3f7a7f6b99b05a056a62d83ff8b54d1e9f0f3354a200769ebb4a9cb23e847110890dbdbfc6795ad2c5b93adb39e2753dad8720006c26d370bba28197b314a5c35b476c9da2e63f174223ec4cd4c2aba70e453d1897e1df8101b645f46a42f9875c7b61b553957d90d1206d1cc1e093c1f5e8e692514d3706b29643b0962db57b9c10d4e3891f949503f941f9f70b612a15cd386560aab3e4b9514373ba54ac0021d2abe1cef34d6320def3db4c0a8f793f78edd44c21d1e79fcd52ea9d7d03a90cb126f7e0bcc48e7d68000b6f5b387250997e58b7fa8971d9efaec9c85d5791656fc94775b2ce6a8b6e905a5ea202c9396d1d1c6787350366e8b114e8f55aca6f37615da8129e081cbe7b4b3a59835770fb2259b875d741ecd6d0c1ad230f7840bc96d767e889bb91e2dbe1e9004d9cec3a6d4d2f453db5a9adbb6b7960378509e920e909db4ce4a26c8480c0586577218609c3039fd610acf995539a697b1d8f8fc1447f946dac1db637aa5ae2d7e5c47f0d49d16aabb8059cc04ddf91e0101546ba1c6ba61c59d38723bf7089d071b808d49cb2a37cb946c8c699a4e6aecb4f76781a8f84d475cd5e86ee3a9a10cb7b4735bc2180ad2bbb10e08b730a3beeacfc386e244487e410d8fe4a699ee3fe50650cb923684388bd46cb1ff4589bc5c528337b501acfda59f565a422fb7181b6be05596ea19cb10a5b8e7f2a77370506bc81b75c7ec4ff23851cddffad20ed8e5893d58abf478f4c543fddb444853d570c2b4ef2747ada7ff68a77fdbd889f12f4f3080477d8ef1e791990719ec25dfc692612810452e39f28b73811f9ee1ced53271b51e947f095faf42cc5a66212c59af5b60f71869610fd389fb575e5e862e1202fe2c1839b1dece82d90394e4e3259fadb5a2c5753add5b1d825e6b21f15e43583d84bf913bc252c88443eb9d27d819e40393caacab8592c63b05fd1c349b1bc2e680a93a9e3377751f67069a25b7eae554922163a6d1cddf033c0e214b5cba3fa07864e4bb2d2bc18e88a9f3382dfcbfe6b12fb30aa92e67b7bf519913d68ff0d38cb3c4a853e2790f096b1eaf7ba8635e3775ba22a0e954afd603de553c173f6c3bf394bb23a0015eda3aeac6ad2ef632f629d805943d7bf044e45843347847c0122ecbfc065ecf644a0bb8726d3d4bb625884d1c8b5c32c3548cb933e565454a83ac6a583e8ff27927eaee73ffa2027f222c6bc1bef83ad1fb88785d0a6f3277a64924cd5434fbb59f3bc189c9ebb68da580de85a448feb8415d8f57915ccf81c2ec61f80b9e5f21ae79d5e18d31566cee946d4a8ba2d9d90b2e6458e8ce5304ccf5a4a5440fe0fbdbdc73444ef480e02e26cbb3ce3357caa3a0b0ee58389572edc42a5c8051d2b0e0888374a50a00f5932f9303edb5f1a5622a97334af52cd5aa17d95961e8551c1e30cd82a5a31add865d118ab61e5650ba7bba4e8d9c20c4dd48bc341d2084ad914b4051e205a570178a1b856a437beeef8e84f7e7d88808843df516b1b911ca8cb92e78c795a26862a0b768dcfb8d43bf30a52d5d4de535bb44bcad5d59ff0351c721b54b5128ac39c3ad4a17ac9a0829d95944efecddb85e525bc8d8641af540b8f25352671b1261ed735fc0f2dbb890c25148f36156e061f923096833b643a879f07cc7e9e5367eb9a2f4907032541a0bc0ed11ea8e07df97c7b7b214f47487eba411be0bbb00c9eb7c61f9fe935c23ac56702106c1d4d061f4f1da59a5f85e83c30606359a3d4b6c9d12a28b9ada87f1bbcb98db28a5ed1dd33f234ed33332a52e793606e88876a6addeecbceac7632a42677b28fbd1ccf34ea02b807dd0c05581f2f5f2c33a9cbc21bc0a13ac178c33d449edcc32b307492ee711612d9d2abe383501d5811dd914278a3365fb0b517bf5addd9823b14edb058abeabf6bdd07c936ee916c20acbb6a3cfa4428a61e3c3f2e2b61c6f2a361997d7cc1335f47cc19a34f46a57187e669a6c486648f84cdbcf20b30a6449f483226868d1793d6d8b9e16af5243d5f0ab39eeaf6daeb23ad564a42d286206248b8f010516f8459d7c3966cbc237df8f7a603794984454fdfa197ae8a9cddea580ff72ebcd14b8a59814054e0b39e8161b4ecf8b036eb2ef187377b9b0550da6dbd0b109dfc086a0b481b96bcf1080e2855e7ee72dc3ccf93142331e95b45b045cdc383aebf279816dd8ad8e86a2705eae8af3ffc196ef25b779040732042632a2b1736dd5ec3e404b67c3434bd04c9a6a9ae59182086f07545301dd4b16fc73f6fa1bf52797376c370c7be774e9de8703eb27cd28e83782af47a05f19f12b9433b6c835f5c091622e1528015c1c047c4a4c3e049d13a4c963445f65fbef5f640b8bb9f9199737a80e35b7e956f1d0a179d7c43a1b63dfa6d36de3b08c2e50088016fbc8ed788b549e156fa68890fbbece00f139a22ea5a0d86fcd17cbc25d89f9aac0f80a2a14870ad55e151fbe1d8ec1cc3c6d550ff888ae971c53ce332e66db23646c7b931d2ffa59933168dcf0e9ffebfafadef3971313b9ffd70da16ac559b228bb3ba663effbf1ff494a52d3994df1296abe53e5e425247402382b9b2ed43ec3010b621ee4ab05b87c53d122b719fa0880406f68409786b624fd480a645d74be39fc62469a73251a51023b41aec16e7f9bd881ea79c128c9fa900f32ed0d5ea9c83eba553e4585b936655d44271c03e24c370ccf2d8cacaf75aa86503a641b2f224bbf694b07c1843d1b78f69436c093d3006f76f2973868710fa047473bb297fe7258cb37d7040e6589b37c90525ea76b3235859534a50affd9f17e24acb907accd709397fc68cfdead1b4ccf94da61a4146aacf0f47eff69e6a6c51dc0190af17448912f8ba42613212c933def0fdbbc4fb9b65a68a2561d0c1c6cbcc14e1cd214ccdb3ec1ff28a76e97086e48bd09d71970386e1ad8c6d2d319cc490a39690cd5b952a71885208c55a474bf448f176a879ed0a235cf4f2d44a9c91d039ad6c7ae9c35812e2bfa86a2557f9dd40295022928432e7f74057a4d8ae97da2cea1a927af60143b59f5eb520343e382903e61f061a62df479d738a7d09cd50cd309df6906a76d482b3373e4d51f52709eb0c3fe50a74fae163dff039e320b34906c12c462185be80e883a6dd0f3991444d3c156df924cd07025d78ef20db483389d904756b56946e31c2efabc7850f8e33a9474aa8ae578690528eb27bdfe9cc183b0656969c4b0afa3d40729027827ac056e3c381099d5208d275e4a421ee211b248503523ddc030e67a5521b64a421a885228910cc8350aef27d9349118c0b04930ffb90b662c550b9da44f2cbf488192b51b893a8b79cf9504e1aca81ff1796b6d9d9d0d3cbe381c79eaee366555e0f6c00d08563155211587193bf6fa782c9394c9b53604c1921503fa77e780ab799ce5cb9b78b1d8a18231f907a55e119ddec216c77798a3f2b13a73de9ca07d1bafbe6edd0ceb92c4595de7df45d7c8c61aa87f234f1d140d89d531ff0b2ddd2f241ccc00e7e20afb7b598e3e9f95652802a0c981010172160a8045840ce203218296ea5e2b4711d475b89be634d1806aae89b021322eaefe7ded9dd1afc1b5fd213d00ec38eef3d4655becb5535bca1ea86059c69a7a02885d8826cd211f66dd519d507b06c3978d26343f80f404310875832ab8a6eea55447942775cffaa54cc5478f9b30150c150b3031e1a7e91594d16d6cb919dd0370c1ee20d9b17cf52623613b5b4d2907e07e75c745cccd2e9e2e83f2fe0527d54892168b3470045d80022f1843a2ff369cc7fc854ec7adbdb1c8e6415bf6bd6858e4b615204ea7233bbe4603e227d1b9feb0c19e3897e278a83c95a517ae164315a39baa80cae6cd076db27b76bfbc59ace4e799648d3cbf976dbd70c9548bc6f7035087c9451a4399fe3a89b0c0763bf474fd2740c234002b72a0fb0f886fa3bf0f6ade33a199d0f95b2555647a15220094b4da52deec6713359fc45d9261ed966ca5662a19d04dc49c0432e97d1a1b26d374dd92ee9d36cde2935aa83a243e8abe76dc6d7f2cfdead3a8d66eecfe7d124af02b8a751eb75f12840b3c071592ebe638f26d82bf46c42099f91d9bba64384614b5579207c917ebc544dd41acc236a58cbb64b492c7f665515b11a1b8cea7e8fd9c4a51864a5d944e75ced7fb8c2c5f26627506cf009cc58140ee001d9cbdaba7f6d733e70bdbb443c1316c3fc47a51e32e5143c482af67ba32848988fb23a65199d1b0ca04da25a247c1b23ece166470d7ea55e6e6972ad16ddbd5f6872ef711ea0410e23242220cbb6e82d92a7b3c171a3dee91f50aceef11afeac20f09586b671082f38cda3c49bac3e5d58ee724965c341f732b766f55c5f2cd4bdd0f02d1e0066bfbbc4a545fd4be81da7b6681b10e0d2f83a2d34e8b8310560150398810f369b0f8662fbed9f4d3ede0c66007e31662b8b0514c552569ae230212b88699c9695b66e72cf8e43fa9f51e46c89ab2b5da2ed3812259a1315681cab6f6cd58e12c7c91bec42dd58bacf73558f562fb98458cd6e65e47c1636d8a84365e76ae13ceaad9aa0a3e41ab5f6f06aeba895a403cfed4f48f0ed2ae5e0b99c66977761aa135fe50d2a8123f653597aba4f37171a8b1f49a38d658ccde6c6387fbdf8467addcd6fe6b8f733e8773aeab4873e1e3cff72ffb1f3959f156416e400d2fe20bf02c235062028b01e09a83bbd6b40e15614b4a2623ba09e588435dfe0b132cf8dab1a0da8d819b3306c3d5f631d086e34e579bb2494ef017310bbe00a2ae121384f0b3bc7e4567ece65cf1a000955f8658582463277fc3a9f13b9736f60d782724f5c1fcbb499d6af29c02674e6c322ca30925a94db645ec405c2782686c1b9b4287bc9c6f6e6e7b149141ca8bed208ad928e53b8708cc0bcf9d2121f53171820e85ddf2d833f323e2bbc17375bd7c0c5e4cebe670673415c8a24cea644eb5c7fb8c92ce55ae623e8f0b9f6ae5b441f52e67612f60ce3f17501917613fb8ef3074ff5469443ca2f19acfafa60de24e66fa0032781636ded50dc3497609e1181692025998fb2823f1204c9daea6851f953b275e2e453772327d82d720305d0cd2ee8c2e6257d7c9b605a1cf4f05d8f7b66bd00effbb146a736b48ca2d54dda1edb65a5884e55d39a605d33475736fdd6836cde5bdd4c6f25595ba02c706c17305da7c28c367becc8b49bbdac9789c8edbd751d150ac450bb71efc00504aad038888330291b78482a4a40a41430d81d8034e5a6a630286382ed1f36bfd250d4dcecb3cc853469ada972b481fe06e978e71f47a335f6261a3c0743214fbecddd91608b811b42afcee281bd1de568113909cb8107aff02c5f8b56307e55aa0e90d334660bae6d311972befce6a79c27b7122f036c3c67d3f78971d06d2588e15ba4af3081e3cd6d6e7f3378643b01c504a6776be4fd58b584c1dc411e9f7ac63334126e9dfa22da419ddb475df0dfbf85d34a853a5d4b7255558da9868266d98d5dcb1ecc5618409165d739cb085b5b32b26ccfa7c7ea2e76937e32dc19f36a5e3b1d9179b069063f7e437187d9999c0efab87e6744a9e44fe26cdae0e7b20b6405d9aa08cdd00509ca57ae84b445071a424cec1abe494943582f2dc2411d702d789cae866d247c3cf9bb50f3a7ab23828515b4e925cbdd6e4e03fe41782e24416a2e9c11356e311e0a79f0a00c73098f63e8084e9fbc5c719546b3f5a0d277750d17f29a699627718ae981d0057db34a143b6cb7bb9fb8776a0323950998fbeab5620c9c24c86f23f56e64e2be41ec53477f41a34754df74e137be34a5f2965af9fcf927aa454d7a45a9788048eeaf83ed0f333d3f03e213cb794bfb083f92538743092d42a01e6383de9af6275fc16f36ce85b39a422b83abf30c5ccc4f46c8b60c3d0933943f94060d5037ebf0101f77f39d869f246de949f9aecfb904afa228b48048610ae7d113baedbbb841c47d28b0d0708100e253eccf29cf2a5b1f7bdeae87b0b801098b8547e9e449af193b874bc9fb22cf65ecfbd12574f88b61e0b1125526a47d4687cf7e9befc718b30208ce1e0a14af1fd62dcfd32c586aca60b8418cf272bd7df8c145ad8625897aebfdeab9bb8ceef33167952fd918ebd2d5ba3661046859fdd86fcc0f0e330e239c39391f5e705484adcf674f8e423ccfd0bde73b36d4f7f2ffd838cc0b8e253c8c9e502d52b62a2ea4440e3e1a7e906fe29d35e92a78b4e8a6f1355f260b68411bb787e413098c32a6ec6f338454532f8b35da413b6d502b93a7193e5baa8f4269d59c168f0036464c0064e8e3e7f5c06cb3f4e91dcf01b07e35b831a9bdb53123cc187010e9f40f270a0b256473b73ff8523ed59247dccbbcb2f9534af3bbe5b74f9255f2c9507c33bbd1212f4c3b49afe2c00fd4004123db244e05d42930d0895868cfb39b8d61a380ab59d20bedc33ccc0132ab9a6e0477527e3e22f656a3f27daf1286320fc5bcaa45c7e76d141e5137886b6ab720dfd354d5f3609902057ea2234bc31beacfa87cf2d181ffa31b82c27c6d2835ab76eae15805d0b89a5c5d83b2655c17fcb7a3d39be5f2f0f5a3f8ba4a1e7b0bb791c8c4551b739bcf5bbab6f9c8f669038a927bbe122c5ac3dbfc3247ab7222c44d63a85335dba9b96efe75875d27a0f751ddf46d730aa2d7ae6cb0399119bba008ad13255cc9f4e195ec32a8c3a6f134901e500c9aca121f02b3c7c67b8e4215ad0af02a332c018d3b9e426752339defc539bb3d2bd29d67679c625d8e2162805b0ae780aac52745be95ff04bfdace188e786e5784ee2cf9537ba922badad85457659ebb527cd5a11c201ed255574d0185526046ee6b7d87e6552668b644687096b33be6b9e1f9b838ec6fcad4f38a5668e82149be10becfde564cd2ec2349b088022f1471226f2f51351b44c7e5adea0aca592e2105bfa5ec781127efb74d1c8504d15d5c375c0be034e993af993cf749bad5843d2ac66471dec6e601ff6674e0eb5c78d3da098571102022fe717daaa2d03c3a680774957c7810a0467ad1af163fbbbbe9a80510545aa2981b3b2cceac378afc559b965d2b5d1455c6cdb86ffe27cdf1cbb7ed3694f60b1eba3a47631eb6237a73b01678c613b25044529049355d447f6d13c87d199e828a8f0ec1167f2489875b683915ee803bf14b7cdbdd908c4b44a569e9d57bd3693a2bc42f724e01b50b439fbb5397a8546e2286c5bd3903a0a4a33646095e1b491715801bfd84f7d29671d89025ff537a4298f417af4910f3b6d2dce52d59d4ce5e6f635d05140e3a8bba726d55d441ae89b987e98475a821c03167b36abd4b387c5fd86e7eaa99ac4f0a8ead93d963716f9c50c049ae564c124ee0e3206b47fd7fca8a9e8bcd7484c5ac2f1cc0606290006a1780d0389113b86b20721f044e82f6fb113fb41f2e7f0f3bf51a596b71d800d62d7c4d1570b520e3a90b5cab6b3a7f9dff0c21b81dd4e4b336f52b29917248b4ce8ee8ff7201f3183acdb2ef155fad7af3e09eab994bd2becb030103dce9b1be6a405ca9274e4ba167d29579023ef4deaec49b97c5218b2dfcf46d93e5c8747015d37078832d9a0b548dda86e655b3b10822a6fcd1c2ffa334b3c3d5741d71a96ff391e5f4fb0ced346ed6736b9dbcc419431dfac475dbbfd3eaf46c69391770190816b4707d7a30782e4e69633de39928455356cd9075a19d88c7f1e8079fbb0c9cf448bd8e7f7049b580fd7a8d9c2a791a47a8f23be9f23cd11998a2f69d0bd59a65ac3ca77261612c7912fc5891ffeaddf9d0dd51adfc0c1d2b51a491a77dd71c9fe2dc0c80a1f86274cf2c49e6ea6f7917cf8dcae76af46baadbcde675e80cacbc75780c90d5fabf7abc0ffde9d29b91f1e204a660af2452317f5230a422e167c9e3c4199b923d889d6a0c0f69273091c2ea94763d92b8d94e8b2c8850d841713efc886b6e52a8bb332d22222db890ff8cc9a50571c23c1d7e2dee992190ab362ade8a86932343fedc22dccdf5f77b0c6974185b8b501ee4cb19d1b40f904db9ea0524829a0d6b9876a7990ae87cc27d8ba375bffb172b4395e55eb30ba9808cdcc009c53b7c1c22cb2ab4e686acb9509c20f3481566a841b483acd367ee2e940f6b3762ae214ddd8380d57160788cc3f37b956e51cb3f130bb38b7093c5f8923573e814b37dc6a18b5f685c2183d9abed802ca36b2ce0c38a882dd4656ba60947d41ef208e615990e4e710064947d80301ba6e9a17a3b563e08422d1b9e5c45b057e4bd6db44ffd2372cc1e8b7dfdef4619b2bfeee65467613fa71dd918b7c6131fae5c5cf3899131cb121bac453ba4a0722bd3c7f272ba4332f83d1fda20aae6ca8efe0b76dc99b2860d4fcd257b7cb898a2e1a4693059dfe9c8c93cb0639e5cdd64661fa303ce1110806c738b968c4746193d3dfa39fe78c1f49695252737578dea632f75c5e796234633ce331395162c9fdd0ae3d21fcc6ec9e52518fc649ce61689bc47c4feb7e4ddd9304cb6aaae4bee8f8a1297e2f640ba4d84abf6dbc0e69b1ee1ae019a05233ae7307565a70403b9f6c93d66994f1ab3d8d391dbe92616c7f50b3a43d74a6eca67a825a3055910c3934bebd822f902c4cd1dbeac7ddbae93fb22b9ca3774b2456cf1c857456164a597e569f6c4675680075ed22eecc4f3abbf0fc51d74b97e7d2756d034ee18f6071f596f0da08876c0f12a246696ca79817dbcc7ac3686450d574f8790ecce1eeb80fad5a2f74a455396eeb9701eb1513cb8f6d4fd292fcdb60e115f0d7d4609abf51467ed3c193746acfeb1265aca6f6484bccbcffc6268608ca9f61f839a4e01361bfb1e49bf2fde0eddd1a1eb62e81b1be49114a9fa13af6046d5c0b175cbfa675c189ca828c5d657caeada06658632b42a56aedbe5cb460a770f16a5a696446873055bed86d283f22b7d7bb4edd1a88907b29b61e1cf504d1dbb11913c84d529f9a37ca578f2916549edbb5f34689e5b9e5810f1b7b6c2645885e1624da15d22697f05168460d108571a2cbdea9c1a75d4ae4be3a6097107f6e7eac46c0efe6ba2d17bbbfef8e7b789d35a4b00d2febc19fbadba4ee872e7552ac6336d80a6b51b9e60b25116b3c6e83a9b940143ce04ff2af14b3b14e0dea35b1785689f7c66f884292b5d21f7103253a52a78753a9c29e571d78b8cdfdfcdce356a7974750f4b840ec6c0d6663540f0113a54e109416108266dfc3f71839a5a6d3efb30667629a68d45dd6d44a9b62c4f0cc2a6cf95dc3b20deda60f3a6d7293d5b30abe2cc084e5c4ebf48cd49531e61649df96faf69783e6cfdfac5c9f699bdad7bddab78b73316fcacbbfad8df0c32bc6f340eef59bd5ffe2d9a75f2057612f65ab5ea916177de22eb900b41210806d1b341816563d5a4dfa3446832d0e15ea8943a04603b4d785a78b70119bb9546e850f911d37737cc71720187bdd93074e93f1a01712585463b94f542d129a453ae17aefdec159f858de8a4ab54a1480b7affac95be9f066eb686945707f07bfd0676c10758f6b72ed28023fe7ff6599a49c7e67f9797abf89fc9c1300e56718d3bcb68e8e7dfe30049958bd2b7bcd941cbec98707bb60536137cc693c86fdb625851f9f5b52fd0a2a0b9833a27dbf0eb97585127260049eaae5f9bce261d122e4cac0b6093fc0c2fdc9ea496ef923bd13ff02a92f07beaa445bd7070d61908538a270faf82605d34624a3104d93bb1101a07a9436875f1c3a931a03372271e61225022af4d725c6dc19e68f70dcc39f8b25c61ef2108375b94b44acc8dcc154b4bd12ca6daa7a67ee9505b7ede1d1bd26e187f4a71b340546e3efd1522e48c3227fb8854a21e7debec6467589c61c5ded68e537d54f34cec7bed2cb01124a6d64ff55383c699e619b67ba2da7f52aa98093965869dd5ba729b968116294e46569046fee6c629e7d41cd090efab19ecae85ea7c558cb12eeaa7a07437b0f97f00ffc58274ef120b39f9536f1c7ac1f0ad75f79fe024b9562637e2bebe3df795714caa95481e7999f536ad9db1937a31b245f2a246836754247328457132a285d735c00aa3bef12af328f56dc0709adfb5b67fe6f944b4a923c68633f4c153c2a621eb976570e9e20269390c0f89e55447877469c0e35dc6b3bc1dee5d847d7cf8fe06e7fc60454f19ede480ef4a3df8b38794b75a6aa95162ab296c75ddc4b0c8ce826a831fcfe5d168bae1a241e08517bd78c8cffd090eff607686f61f7f8abd8d20ddc699d8d74736173fabe6613f7bb362bd02a2e9a4d4f35221fab6f63cc03b1921b306956eb6c2a3f2210643b9abf66dc821f626e20c5c6c07368ded13ee87fc02096eaa59d5d5765cf069e0a5d2359f18eb590b3e635300f293e159cbfbe79e7245224a419cd8999c7fe89fcfd749e3f3138b5ae63b44b10f5439421d240e99cead398ec30adb9c7200535a8148c8fc0ce8cd184720249102fb5ba60020e6e937ea268733b867d05e59a51a1de4f157d6d86179e57cf91a7c20678a156ba7a4174aa814fda66e2b0ee74051b090d8aae5f295d8157b78b64f9ee20c85f6dcd1f3382bfe276232d8abe5a7faf6685bb84b7309d89b2009ff3c5bd28a359414b153cb0cd8e2919e265ee327a2bfc64b0dc72850d5c4cb08e6eeb2425a67d2ee089c1c3eacaabe396990eeedec49e142f2f385591f085f6e45155da3acd1729ee5134fe339690aa0745c6d3118de12837d08c647cd8e8ba69154199746daa636e6803f63928a535af3110cafa5f1682e3c7637e2bb38c884efddfa52b6ffa864bf696cc3fbc4c0f6f5ca04fdb77144daa06f10d322cf457256018c082577667123c92b1275b0eebf664659463bb708feae8a1953ea7eabe27c0d43a607f1b6a2ebcd9cf6e9a0301bf3afbfef637c32052bfe5dd0589d6a0a88bdab9c66b265405e4f83d845f4776e95734a2bebe064d5abe3c8675a7c6a7a68fda41925ac85a6cb18d7664f9c0bb3bab840692c78f28bb1796f569e15f7f30fd5a9617f5448f76a7d01eb2062192cc16a9af32fed092fcee5443913a321946cc8ff09698b612fc40a72f63eeae930b9bd9757e07769f91789ed30d3097816f54b4cce29025ec267c90b29089dfa8a0b727890583e35046c04bf39b959a9aa44826b3daf2abefbe96beba55faeab1093c139c49a1e3e14674e557cce5b4d23af3edd87e60a2c604fc8373b5019116bbefa0eb77b9d331056673d3c8242be4947f4d46957f45d963e06a0ef917f817a34fe48522a66ec6355bb46c81bd45af3de9101b10eaf207f04d6db03d83ad74b65f88f9e3092021454dfda1711b5c3cb939353b9df5b2cea84180c0a79e309eb2e0cbc30ceda31d8650cb82fba9cfc1a751b898fd69aab27cd0892a24c4d13a17322f3aa0c9e66fa551b39fe007b4fe05b7d63756e36ed649844b32c4e8def6d797403f1bc274e3e285e74a1de8139478e66a6baed02350f20cb37ec13c34cab91f36d09d3da56da1a70e48b05aacb923ed4571c601a197a5406044c36c15b441d3c04c1cfa8cf3b859275e52574c1ce0eb8b3bc56c90e2c0c3d286be29f8222001eabbb141f9875f61e3ced923c51b3ffba66fed91c512c4e61f5c9ba2b1ee07a45f1b92367a753726afae2121adf2f39bba552cfe24d3a8c0519ae9dc0cbe71b6f2a86452658a204c440a87e5588ef4ef7c8daf22ae8f94d7e976ef425e9e2836b97d425085e5bb1dea11ab9bf33c3b54924fb7d23805317d39849fa6995f70d2353d7eeed5b8c95b0d013315949ab1f7abda7a2394438843a3357e198451e40a3718af9cc587bd7918a8cc896352c25cb4e85cb12688507e1e460498c25f5788d3b7f3486501dbf7c265e3174f0454bf33ca6fee292e88416263a21ab891771d1b721ee7faa618210fb7155bd8625b0ac28847988715ff2f36872b3b94cbb28803a659dfe55bcc7ef4a8ac7e0129e679bd9064f1ff897d2eb49f5d774f2527c7e9c0d1758b26a6bd82119bfc2ca12798e1788e8ea5a3191393a7210ceab53deaaf643d2cb37d47a0a043641de81de4c187816febde61e316f5c3f4a2a10fc35fc2a55c5b9a1f1d16b318b63a950e208bf86573ef1f387cbebcd4a85e9c06f2df9fa8419467ae4853109adcbfc99b1c4981d563b4bf074391a87393387415df288a64020991ae0ddd9a9552121b22abb613549006f6c79cc89e20fb594f6115f792e9cbc5f57edbd62116f3bdfa6b2c66c87a56d36a8a5c88516cf1bb6ad7180b491e80a79ce3075b798ba794ae0286640da0758f49287fb476d008efd1e8d34454a7d28e63acbf524b6f2de6ed46415658f14f67883a71a49d4e2bee73e834e43e256fa09d9d9c7da854101be61136c2bb5d4cc905cb37ae3a5da0b97bc371f45bd078e61cf91dafc52be7beecfd1a1ab62997357188e4c360f0b81c1c34d900c8112a863891fc56cae072e288a28db52285bd0e5e3b80c9867ae82e0284ca763b25fadcbc95077685e965e821f3bca97283d0334f21534c2130982f175fce8e33125a289ff89a4cc4b14380a2d7e8a796025aa8a3d1ed37cec4a1e1000593c2d0804300dceeceb548eced987adc44b10728da048fc1870d76ec62bb7e7bfcff3371994b819bef30052bc18e93e67fe7c205182c317151b812a1417ce64837a0d4c7c023134f97f7f8807d9b1eb35147c0b20aad2e9ff6c16dc80d5fe32128b09511b755543c4a6408e637d7904e0fde9108e754e163e5a86aa9783808c039cc8bd39cd51b9ddb7f963ff9310dbd3df75a8f7a6cd1ca8a0d49b5679e44f0bc0f25e3f3105f21090dec2a062698e9f270df6d4b83d42e8b2409226f02388a14bffdf3ede23765789c0412fd0a14b285d450e0ef9f6d1e9c72d779e4eb5d9cf038a3398b7322f285c0cc36d0a1fb721cedefbbedb9d884fff709cf8c5cf04c5847bb2a262109f95dbe5353264fe64b6817fc39d7de05aa3ecf5bfbdd6ab65df7f84d94cd1c362a4cb165b67ac65b0eb6e4a80c1c31a939481860bacc3b4e785c012b4b4790b357e9021a71b0d65d33527e2886077c0f7a37bc7b994061d43bd88d8660ddbac1f238273c0bafc79a05fcd03c098b17396d364a9ae86475eef187c7bc892abf373eb0e7a55b2a7f9f1a32fdeb5bbf20ce6264b1fba9ccfcf0a1d160a6cc1696751802c6e1bfcb90d329370fbff6be1c6d58ea93b7fb58f86268ecb6d1e99bab4b9982a396b812c4c6740be080820fa0f3694f16a8d9bb0cacbf75eeb566691267f3ceaf13c1e2fd3fc4f55ad0197b175f06ef5cfd26ef9c25487a56d553622df4481bc017211e6cb59c54e90269740caec08a0622457b13ecf8fb8dd8fc93736a64db718140e7677d8fa9659ecfe252f3484646928fc3bde70b49a7cba2c2cd4996acd1a76ceb42f80be33cc088b1ee0cc91dec49cde42d5884d39af3efb921addcbec6d28f6eb3e1a3c4ac166cc979a4feca74211e1a2ab61b364e2b4cd49cb23edb06a02f0fd7913e6783b7aef11cea71bf22de7665a612f04a6641a15e665cc69231ebc4d133b8d576567698a2a8e72aa0102bda30d3b9a19d5d983bbd8ac0ccda3f8f13501b2587a0aa136e8ed9d1c32934c65aaa8bd4236e6e189ca751d8d47fcbb2f32661fb38928442f60c1bca92ba8cf1b2ae79edf8492c1e4d13f263db828033cfcaf1dd52e3acdb6994d076052ce9abf10f7f9348d692b80d3d2dc09cd01a00dc260b08f42ed4002798204b09e20f17efda49a582b5321fefdbd77fb3bc86c7514aa8703567f055dab1da982cd93aaa46f360e4dc70ad5f03f3feccb10c3aa516b37848f8d4ac790452be1915f14d7b1334bc699467177a41881054a161ff2d6b69ef79dcde3f6f046f5de7fa779635e6030851928f55b01ef3ffb588611d319587a74df95d8ab9d352c6afdb9e6b697bbe946a3682f1650dcff803b66017ca37a2bdf864d98a0fb795d6fe93a0f9a4dc6dee089d162ddbecfb5049a4aaa4331d02a7af88778da148d93db09da28dc1dec88d875fcb07afe8b0d8adf9f28de1fb270b6cf70a430a2f83b0a1c188631494074240bffc78e9bce5b283f07814689e9674fff31180e865b951091836fcff0342f5e4058ed1c0cc155e1a2e3e9373359f81a46a8c11be500d4d75bc0d9ddbb85570d772a493147d000e768f9a6c11309858476316aab16fbf1964b1bf95527400b76e0444c8fce2b125cfd88433bf5481890592b1b29e44aa1ccc5fef6ff470a62c7708970063f3bb9b782f130784e9984da0b679dd5f8fa672b214e691de3617deeca5c408263980cd0449afbbdda406b9a27da99c5f6756195a9e0a551f9508421a000c7b3c19e20799d559d2dc89927ecee90f348224083ade65efe5b72938171d6c64ad7a0db42571ce46171b014bc240d18ec3e28e0ead4a84bb487cb050948fee19b0d56d219b7d95715c307a5395a01139bd92d7e986c77ce816eb9de30b092ccbf3db03cda308fc4ec518b605ff771e41ded850d65599950c585649179f890dc69894d5cb6b2cb0ede13cd1f1f4dae4d5e44821cc4029607c241cd05ca6c18ed337b888b3722d3bfecf2eafee9949b5c5250c7083ccbc7e33b1b45ef5547e26be79667ca684404f4538d10e1998d6c69806c63392c27379bd0a809ad45bb8fcac94bee2983a491297e2ff3389955613da5c567c2ae91b525870ab0a027ea529fd0bc64ece2bafc39dd06d10db3b26eb2c0c2a70710f63b041240dba441d8d97c3613b4a82e48a29c511a5e86230e23da007f1fac4b9552d514dd9634500cbeb728c8ac3edb7a7b076356497e3a5162c44595fed715eb53121d2ffe08403ee2851c1d75cdf75674886312b5b48d9cd0f911bd640e03ee7f9e40d6ca0bbd44d2f4ecd314003dd6c9468ee32097c903467f8ab3d1352d60bc24cdf4e7fc8935e9822c0571f11d2d505b9ed0f917a0bedbbb8b54eb73a25faecdf7df4dbff1befa1d5006a734b5b6d8a92f1abc7adce4318a1fc2eb1db427024dd9a1fca7743059f4d9279d5cee71daafcc492aadb3601fb02baf331f1a9a1d29b517c5d3d284f854f06a314e15a62ef10b4b95d3be63eb6effe0ff38a0b876be9dacee90917a14194752dc17b21489e6f75d4aa322ab07ceac6df99844f70491ac55f752c13992125ef8a40caf12da0739cd6a2c82ca00a37dadd06cc766b59c1950161693a43ffcb0c39a41cac63ea6ce2b301b6e082f12e93bdc79aeb383172071cfe6ce36cf52f4ecf903b128eac08a61d38d558b4a2e6755f548bd23ff75c62e2233ad61bdd7de6554e30761a46e54a9d8bc37e90d79b999a3132313c500268b42a822239db18455faebeeec0fa8911e7f1ff135583577332f5f87433c8d1877d98629c34e38ad6eaf5dc3f6ddd590fc9ccb88c372a3bc451da478be808e0a8979c4ad84868ccbb7fbbd8c0e653dd5c11c5c9466ac232c500ea339f9bdcc1ba9fa38ea3bf783ad6c976f6536e862e5eeda63f9600fd541edca6bcac92d253c4ec8dfa5cbf6c07093ae1a0f83ed32e71904303e59527c65e018e123b5218a5c6d077e354801dda506d3c3d9e253948200233727b67e1d9c1fc610834924b8822368372f514b9c175f416c52fa8330cf353e5d8b32fc79e183f900835e6992e66d64ddc76c0af8649281e95503922339534e38d4988bb5daac9d9847631fc750d0a973e844da1097780a1f8be3d5282c65c5885e6ebd0424ee515ed6e3fc6cb5af5f8c43b48669ca6aebf109648e49d5d19e6efa61ce5d5029ef6f255f946e34eb4c3730a1c97205d6c9d9abbbeb053837bc7c3cad3fc85122d6f86558b913b273dcbce60cb0ea4256452a2c06112e6f9bfbe98268d40db1ffe715c8835506f408d9a8bd6bd08457624d9a5a816ddca802e99698879dfd7b855f517efe078542d7ba53ecdb450e1808c5ed669826e503bf1b734b74d50882b17ce7732170038771621286559698e250a84d20ffcbc36912cb6b65748697fa6807a9c19a93ab460f154c1c9ab7f1cbfee7af5154f8ccf61bdaf641c99c4232f5e997d722343577674780dc4215aedb26ea8db8aaa88048f1efbbee4dbaa7ec24c2e59143783b8404b48f9d7a34e77042aa7339b9da64630c926387fda2ceb0e8ccc2e70351b1edf54e5c8918944df549f920cc397c970d17f9280fb0bd27c0b139018baaaf94559231ee96c2934bdf331553ad3585dddb3d30675070fb89cfc31c0e72c51081d1d9bef9b6faca382c68ca771da998e76d6ff1c528d0b80abffca3e7f4b672c7b9d02a9774f04aaf2a26ebfa143faf0168a532c89393c06ba6749b0369109e9cd5a3f2f33683ccec165085637330d1b5519fffcb12a90f8c61581bd7f62a245281d5ec279c6da786b0f92c4bd835ff53397eaa32882a73d712380523fcb030795d306386e37806bce010c501f203089fba37cbd0d85ca13446d93c75f8d3d3f1772c9f937deddeac0b1f3561328ce27e20ef05afdad94b3460ceec8cf95969848660d9190a0c3d6a29510d330857a0826d5479923eac36e721c2ca8e3a78ffee4b9fe794676852e28ab4946c36f3b8829ab6648bf4222456a35eb9cc89df06f3711cdd639b7d2cb1202e75a6276b7c22bdcf2001b9d16cbf45d42d29cd20c581244e49d4d14e7e6b2d94a0a8b4b6e3e7664c6c8351cb538fcf6061abb52cdc035fca4d800fb019bcae28113737c29dd4a82740dc0acebea581916694796b527734ea4ec886c76a9d2e4b8201cc2be443f45efb43ad0927db39026fbf5235873fe284a716ac322baabdea3905160a2947016884ec76c424d25d253767dea7646b666a8466702a2ceb76ae9e80ed0628a5351e0a4fd106cdfa9228a8f39384efd588b7a250c7642d523deb294925e7a9b6c14115f2bd4bfead21fa1944cf320a14dba0e37dbec2257c3c3a54fa63a91592e8b9b08c16e9d8ceb68ecb53c189dc821b938d8a10087d263241a9dcf0fe062c60e7fdb06085814b07282f0de14444f850ad8745440617b34be6f496f1c64b7e855a25f42590b27fb50bb7e623019810b1716ec11e7fb5fe5726134f0821a028bc9195d9414438954466f478594a705de9ac452595801d074437cd8463c780f115bd8ba30ce3be5b637d470339dc72612ce0c7ae950800c6c0f59064085050852c919d22cdece57451380998b8395718d2d3e3c730504a6bc4c08c0a3779fb9184f5a11d5d7bcf101a0e3924f7b7ca6a41747c49404603c377feaad9e356fa1a8f03fb2ed165de035dec2913302792d2ed6a12dda02a845783bc5f08fd2c95a91fb467bc1984c62479d088df717b036bccdfcef25e39b3dbc7ebd583d94f9c7ffbdd38be8b311595e491433bf675df19871b9e2145061d4934605fd8a470f2ecf6d55d36b57239726a64d0a3084e5c24d7b189c1178a5c92019c582518fdfaa0172cc32aef848452f38421ebc4dd3f7163fca2e597b56c73e4c1a72a1f8f7d618a16848e5be63242830c121e9dc783b0d1b822bfa0c4dc5e8c3fdb4ad616fa2fa8b6bc82674690f25b80661c328a06410ebfba07cce1fc71ced2331fc3e889d7ef9d6308b711b9c1636f27fc348492ac095df4112d56bd4cdbe2696a823583b68808ddaecf57bf8584393e33822a5c5d6e620fb799b31c448eac8b8d5a9ba92da32d2b489fdae125de807ba04fd1c1c0597e9ead95527479229f3aee70ed202f17631187a097cfd215fa7b9063782c287b29c3605bfb8640737173e91038877602628323b60ffbc002a7d81ce073550f3426870ec9e9e2a014c9403cfc21bf1877374a9ce64470021cacf937ac9b4273da9e5745e90e55cb40f815afde95f5c43a4377b810224d96102825a606175914efdb7404d30de624bf357b535d89a525da12c0ba89868634e057213df42c36a84797cfaaf597c1a7fdbc8b7b59621912bccc64841ff0efae44efdb2e45827e445d38f121b0f34cb20f0d7f48797311d2046106fbd75dc95fe76cd0c5520f23b4d0f56b2135687476b67048653c69b0aaccd57862268ad02de62cf3e3dbd687da3c260fa99a11195ec9962699c2174799f323a46652f3548fd7f71fb2507cf4d15f74488a4442fe913a43b563543cb78f221c9112970b4efb7f73bb7adf0c7f4eae45570317e5e063420c09abdbdd9ee1f342d8edc972179af505a347c05ab6282fba2d1321ebadccbce8979beb1354326209a456082553d52aab06469636b8212e77a5cb164fcad2b256dd47f18e8ca4b52f1eca7d21db47cada1f6d721b4440aed24523a30e5cdf55b90b8970b5b41d69422e7fb4ecdd8cd5b5ffe8c8e3ac65331fc21f7846218fb2912a59714c4322ce7de1dfeb2f32237851791b7facafb6caca9c9fb6642b6d99143e495c099a28b045adaa198935308737bb4b997c57c8fe28f90292303e16fb3ed647b7cc8ca9c082ba733aee39fda9d29a2f004fe14915551d577c412996e7a4595e84ddee87cb18dc128a098db32607633229a984e154074f0abc7aba9b2c4619b3b688431e566ba7602c02e6dc5f799ff2d261a3085376d13fccbe8a329cd5552e7a37730262abe2760c89cda1f47631edb9ebfc23f26ff0e1661717fa44b191d9879b75551256f89d3cbc9b7b7b00d1ed2b1a8223ebf5db9ea9f7078b2d4456955121e04ad2ca47db3372a3d11302b59a75ce9a06e35b68bb268d09d08341616d6a0b1b92444a5a18524595c7d33935b3ec6c641c731cbf471d900572c8c3445d2dedfdabda7efd70312a0cea96d19f9750f014ed130c2c39e210d52006aeb7d8ae690fd57841cc02aae58cd42f8010144c3838cd642ba68d98262d897988b3731765962cd944382089ddfd747fda73ce0dc45e3a45344f97bb24a6ec95f35c96a342bff6a9ebfa9d2a31a396772987d27e81d971acfdecf9af5bf16131706b56d17be3a4da1aaeca1a16e062c5644e16c235c0a68a078ef84540bf93cd1ce4092e2ba4ff8a3275ae88e80bd28230c48e04da27828be2b7a0d524999cce83049c4178b6e231410bb7873bc606c136455f8204a8c2ca0a333dcb8f5ac34398ead031c5c72b541665e2d27ba08fdc594807f05ed6b5b0a829793aa88a299b94773c802023f1fc86e880e29325dcf0f852b4ffe6d4981dc24c546513a23d65d6fa34d9129142c3180adaaf18ead112a2a0ee05de1063222df8297b350ba8cc15d735f562a79bc3b6caacc6683c2621d82f109b6ed298cc8162ee10883caf5b6328c51e23b2736d29995d31e344045914b0a90410748862f650c5d157bef778bda63baa0e8ca5dd157c51c80f5fa0f737762e12deaa1b5515368dc8ee071f7fbb657b2949d7c54e6a4ddbc8cbc3012f21b879c49193354f8665edf1875ef8c4dc6936196296978608a1ce102af191486c0ec34183d2aeca259798eeeaa18b47a6eb5df994a5125176a1b2c69815d587c63d79786ec3143d2acd7fd99693a09dc9438a300d61bc3ce2ee4d45f8c06587a1f41a9ef42b6b34fa013b8aa081d9981d3db151fda45ef5decfb34c1be50604cb5dd2d0ca8292d57544cbe5ddd1c225413ee862d307ddf6c4554034ae8698d5aea92cd5c4f0d6935ded0a965c6389336fe6d28a7d1b2cac210e2803a4d1dcf696e5dbc4eaeeb1314626349472f0e1a10c16844c1bf03dc8017749f125138d13200f32414b025316fbcda564d76dc62c7971b2791830074391b8fbc2f4b3672e7504bdb5ebd2d09712b23aea2c505cfaaa9f586119b9b1bb02a8a88177c31687dd04c693f25f8ec90b608d060008c3b58cd83fd2eeb0469a2ae235088ea2996f5deb556c409ecb996de25aef0d73eddba968d767b6e59b7af8581f64086995269f06c437a17854608b3e8e0abb65f8339a38cfe165f0da37a3d1cbe4e6813cdaabab2f46ed4bc69292d6ddc80c76838c847c7a12797960357289ea144e8880fecf902b938ddad9c8c9b79c068d2372644ffa585ee8750b1894b14f34c813de6c778e3242bd0cfa7525f91bc5bbbc54e01762e2af2181a0f11dd15af3d9aa18580d7926b306094b48ebf0542a6aff49d56501db99a6803fea44f90384bf9f40cc3f6cf4257ff0b86953afe8e9e64ed2fe88ba8733288fde27e564f2165013692ab5ee0b8efb1c134f764dcdc1da837ac2177727b66762c5531ad1fa25b29d1f67af9c080a59b6279957ef87e9d49cebc38267cbc2f2f18752a34bef9c706f299bf10bb284f1402ee9e396ef68eac7b96e595022c4e9650cfe8c353e20fda60957a0870b4f3aded3f38f89f22c6b98c8eacb1a376673241dbf2b933edf7187aac32511e351682ec94f84d5826f73621f4906818d3445448de4651894a739a12a043fbbc3c229beb4ce34c799dfa8eac344947548101d70dee6b52958ab6f9b50c621aee951e36a5673d56810f8052bb149344afdc3e1750bcdbc9194a3d9f7fced674fa536a8cf1344fd85ba53f3275b95d273b2c9dfba6739405f1e577ec45b86410c2fb0b107882540edcc47d049a71fa346179e9c9cc883a5c0dd31b74d872f2a60c01111ea8b82680221a12451dcdd1178d164cecb8ef65f430da5a28d3d62872bab1b499ca6da32f813de7add48fc04de8498339fcd084b0c29d207071f747fefd1b73ea63533273c135810cbb6a48d380a13bac1736a1ebec4012121283d99f908047632b886d80e8fc64b7b04ec51841c011f4f12a7d260bb52d4f6922b691a83d213bd02f80e55a9870ee2a0c428bc357cce02fc85ae3842e8b979b8a26fac80b3072012d6ac1e6c12cb26f120e0e5a19e2de4c60b387614fc96db533854a5fd9d2fd0e581714ccf67ffbbe3614795cf950f5dabc092e6d5bc9b866d0124f7c24de39015548f8c17c8120645e755c9b2c69dd43ab10be517f7f07fca6075b9cb4f29cd31122f98ff3d7693f46ff8e08973961261d51f26b9bcd82c7a7a9a468e598ad943d09b151494c9fc24a78c6db1d27fa95e63467236edeeb09f7fd3a43c682fe7a4c635abddd7c3a638d426665c5e83aafc3d78e679a3b25d6b5ce41e4ac614b92b2dcc4342c88002f9cce2ad89218b47579a7da14f5c22fd7c76debf612ebdce7b2c901a1c5a852a1a3a53bfee54b4993262ea3e79153cb5c1c38d5d88cce91160083ead126e6dfdd4bf1b3392ce02cd3fdbcc7bb948cfba647bcd616b04c5a7c5a37a5fac84469e224a4d3ae75ef260484a444877f3c8047ff119019688963cf7f216bfddbb7bf0a2a8cb52c75d913366b9be86aba3f9e83521501cae5b4b3fdb642772ba21320f067520788c6ac6ead725412441c335fceb5b7a721d0eade3cc50e1c23269ea5d8672d107db4a4421dd3bc82f2eb8350b5fd0797cfc71499b176e3dcbf9b637a862c43ab2b4954c96f977de3eef248420c388c63f575fc8782133bfb8829f89e8febafa5c44b295c54bee6071752c9f6bbf2e758b3e7aedc7f457e5f650eb6f8aceac8ea0e9519d0e10923cc169822ff932a423932389b568ef901709a9b1942422819ddbefdd6128d0236e94ac5a665f56d9dbd52ac2e3239b5bbc86da88872417f4151e50d782996499cb8bff23f4049647fa307dd593266c89badd48e46fcf79189dbffae1415446b09d9d0875e194e1c4444794a1e808e250780c32adf1eff7ee9a309f7644668474aa122318c12607ac5aa5378edd364bd2daac5df541dbacd6eee2a15c0dff2dd6bb1eadae84e614ae599e942af8e2f6d7a0185234d2eca19e249957e11d99955dfb9273e4ba41ec10b5bfaa5d7265981294ca7303dbff4b15103ddc2500a7591332551475c1f0335814509984bf70baae80f08e0339435fe2fddc15906aa31c7d0bc88f43190094ee2ec0f31b7b7c8b95449a36f70ae4c32de43301f119c51bcc97749e6381422c15131241ea642c73c4bf1a0bec41fd89255622401e1090b5def66f1af7a5eb7ba61a6c9582eab0498b8d450a732e424d0d6e573b23fdee02b5a99e9d30c98753453f4261d109de667d7215bca627b981703d5ce638ed7238877bbc8ee5d281e6bf24d899ecadd41814ab3540cf95e278a56bab30180ed3bf5294bf5114ee86cc85cdc6d1b03a6ce985b52c7a4fa308dccd3d6ab84aae02909f078039428f87a605135fcb98995b4aa8172474588f831125875242ea59f97a3323516c97baedccb50af85963b57330c6e5ff8db00b3e5b464dec5535eb27083c2cdc706d2830bcd5daeb7133870b1a9a77b4cd3835158fc56214c1cb7a23113b77db75e73fa202c54994d28c15e90bb9c9e208732b4c3a19428033e48a0928e82105816231f7862c05c31348fed2f253e1f167c242b7caa6642432ea63e7001074515c9d62f526bce8ded8b1cd93d8ac031b8a622353a7af57ebbee1aa88350745bc403bf1c8f488628f67fcae493028f16e2680361861da93ce49799cfabed5fe46529e3a3f4c794f218534e1f0dd1c93724caee50576af1b55818ea60d0af38a87d9533464db6a87ad01ee878c9e231b6becd1aff5b7f2e5115cba1bedd84581d8cccbd9f887cf918b66640a133c0660021af20ee01b0e9c37a8bc25c72c0c1e013c34a21dc5471f08ac94893683c97a7311c0db852d4d6a2d498b911cb4d660e1f8fc953ff43b7f5c6cc943f6a2cad6e1cb7a83faf484a3b8b0af3b78cfefb1f194b9fa9baf83795648b93be53621d18b6b917424103e82f09ffb45a34cfa2f531e3748730a9c623a6c0262ab857bf53120031be16ce16e4e19defe3691171e365c46aa1081019893ef1f50e036f705f4855e6497c78fd48c5dc134f17cc8f4bde10e00b6bb7635b895636e74630254e3877e2451b68f2bc144d42f966ab41094cf7ba27533bf20a599fe94cb8aca8b3d7e83187f9f40a02c7ba8c003d289bb68e62347d83187a55f6258cdb3927d01facedacf98ef74143fdfd8cba6c2ec4d2783ad43b32262410c1c7ad99d71c431b1e6b983ac2f5b12200e8e95c2a080b51304087b272102fcb40c2ea09bd9ed38cb7724c779d7a31f3cb58db14ed3752c43020a8cbc75216f544e8922b564bb24b0b8128c04a2dafedcafc01703a6e85af6e7deae126a22eb82349a7e71a24e2d0dec82af856df9cca7a6ada4215e174fb34d5c943a0ed27cf39d653e95fc86cb0d48b77b621e1895f3b7310b54cadce9bf65f3e297702accb0b191ee1c3b2f5fe7039297817ab57243fa05472f91f65637ebf4e8e4171375d3b34d9e9d0362a4ef0f1938724281701f0579dc28bc7d962e8ee6f207699164f6444a1cbd2cb4d543571ac553c47ca496b3e5f4fd2aaeaa961cc495abe981156b7d052e5e23eb8a13bdb7393a885c9977ecbec620943dd51cd72d188d41c0ec62d56db85bc8468501a3088858aa435c30bdc173c8695ec85504b8bc05d9665cee565d468568176d48cf5de8999e997745e19ba6fcea7285fcab37703636a95820f0c5e70829136dddc49d8eba87b71b6cc857388e108116934c84cd810d16fdc3ec3f6d8921433541a87729d2d92b37ff0792857a62c116c746389ac16df6276b8d520228c913c29ad06db5876bdf640cfb2bae8e12574ce148eb99bad59e23c6e37cda01129738ce8d1c16ed60dd11132b3e7e51e6ed0c73a373049d4358282710bf2bba35abb591ac2e94e33f4b91bf11c7d7f67d138c3110f52182eb3cf1b3ac2097d299738ad3b8f7e10b352ca53d1ab9fa0b022b0b0f853dd9e27e7186c453b33417a665f6897685802dc035ef5d75c762dbca5605da143b785e0ebb8fc4e11f1b228cd72509c3e3a9f16896834e551590f689dc8d6a349c1f02d2e8d29d040767318cdf2c9d261a48489766f23d1c59f0e6f8d4665a27f03f829e3f0b17b3874d9230f2d494ad2068d6ea53f3fdbeab24e17e5a5135d8bf124bdaef7a983b170551e3e7d20d1d268799a5185f9723ae1d1927904c89b78e219d6096e3139004df77f2685a48bda4c0bc97097cc4464613868a18d26e1c290d8495a86b346b4bfa99c8c7ab0722b9a4ba7153f978737455671e1401eb3c185ca5bf5f524e39cc12e44f4b1f0b3aefdfa83233d88729a1f09b1dbd8ef3a1f7d96807054c970b964668a61bd9281ea11cadf1437943597478449a62c6e440b697a45d709c83e90f2861af37e66d27cde2e6f995637696987b273c66b0cc0d6a6ce1c576e7e86e37df2db35ad83274040dd8b9095ab99b9c05bf7188e557f153e442f218596c92be45f0402f43c27d6beb78bac0c923b523cc5df85cf7d27918b4b12845bfe21e5e9aeee337dfcc6d635b1fef503c900001d626308b7fe59481829de1924c22dfa136663373552f8061c06c2cf92728760b9464b2339e3f854ab3cc91a6b115f53cda6dc023dfd0ac8a91941c0959438b365fdd2b510ca2aab24671ab74bad4d7790d3676f42f1abfe7dfd77ee6ac377089c1f1d71ec34fbf1eaa7e91ed29a40abb29a77f2bcb15746662bd2c9c84da222a6f98c3da3a5a629e3d09b344650e6b09b5da304e91671ae81cf942906b569932c1c46c53329944276ef5b0ed69b727853e7a101e7d57129157b49adeede52b1f2bf3a7a5484b50e11955350db7125e87ab46e8836f9be68934168209bf51d897697e1db84b66e33eec9d1ae62c09d4d12eb7a2d80fa6936d7fffa66c9b95dcbac4606349bcbc4fa5f98715b9a20ba21a530ffc48a18319f02d2a6207be078227ed8f0d0decf318a06b281c1580a952247e623762d0772f0a3b092571477d1972cc92a32433acf656480866f5f9594c3332b1efa22ebed5f6103f3d6eae33c236322e5aef5e2d62ea5f3a02196cc06ed78809f8d193053007ecc275daaac8f4bb94da0b5f0afaa483810713dfd9787f3696ffa8a75311373bcceb97e4885f3e1cfd2ed5f3fd9fe72e5c5c34f69a2a9a10ca4dc8ce52513948daadc93d9e1b36b160b4f6b8bd4ef0bb5740fe1d1e838f3befd674d6dc2a17b5412f7846f623e613fba5c6786826343379ee8ce74f617819e9043e7a674a7c77445c2da258d242f7b9013b26d9fcd646e011cf117c008c75f325bac680ffee32b5f1a4409dd3df22cfb79fb608bc8114a2d92c604bd5987214921aa777a5d02d9e705f1ecbbe495465eed185b433c670638013a9641f4d5f89f27238afb204a125b4107ddf96c3c0d96af2d743465de9dbb6eb027171759b1306317280c8a5a42aadaec5334c99bdaafc1d79e315a94861b9bf91145153df858effb7a49f0ac24dbd87266833c22f6fe2860487b03573d304107a61c5b51b20a5433287a10efec7f1b34831ddf06ebeff2a0217f02be1f506520c2fa9b9b97bf5c58101a41557a6a192e01722c1225e1926e0e6ce65bb9c448ba3d82ce875cc966f23eaa255c119f7da1917f0a32369d5b3f3eb8aa7aec4cc34a095113faec6ac6d9323ac6524ff170fa579202c3341b69c19739e60d9471f5e0eee25e704c5d1005369b19138cf5dd3001c8d7ac6a68e6b18ad6c8e54c734ddabf084e6fc2aa7d6f71c95af3e084be0b5a7213dafaf919cedbc59c8273f39e4f1753a774aeba17a4eeead3698c42f006e283a3539faff15f60c3019c9c61d57ed652049893b17b14baad8373dc63790fe5f0d132d697fe3f3952cc3c95d418af72cf1d8c9d034eeafc93a3c4ebf791d9f64776cf6e0c64b955d1d9d0c6873fe9be5c56ffbf9c9cb5281ff75d90e1069dbdac9714205466b01ba21e3b90b26b23f4ec386b283e8c3ba504c8df14cd4fe640ad980fe96c72c92c5d39da34d7a33045b749fa1e0228866602964eac1e670f8161a9f277d2837cf968d4f06399e5ed35205a559363a862dbb90967b13360a65eb5524a8eff23d5f79b443e912998cb1f391e2d3413df58d4c96690a70ce3f10542da6ace349884bc86b35faf9ece3dc53451e4ba5a1d89e1e9036e413dfc6e7464c2f9182d88e6fdaca0250f9eb7cabbd28feb0e1397ce920db2833e714a3a9b0d5d1e44022b5743d078e5fee4e3bd6e56909d2881cf9552cfdfbc7973987ae0617dd50ae2137cfc6e0c5f9f67c3e71a982ed9f3db0b3c88d643197b2247432d6eb8eb7bebb46302c6944f3fc0157d328061476163cba57c8442def5c67dc4af2700ee0311ba06260a61b828dac2cceb3dfc798b7022223eb8463e0db4f55d9b27da9349ff4e6593e908ba05083a2db814eb35e1b53a6350982b61da5175b1533c0d5d47082183b86dfe932a2972c9642d544068d16d6013b229ff6ddf77f284e5f8c7249f255879ad0823d7f83134b57e10320d714b7fdd25bc8c980e905f6cf1bcb88240a0c62a9edff42a48319947a3d31aa3e517f64af0667437a5fe630227336e152dc7a92f812f605a5c3e7c496d9339a2a80030564d61452873d0c80ae811b6a39ecf1873a5fc95fb0c99632306d42b4028a273a64819148367f43583e0ede47757800415aaac79f689f88c38607e6246d94198420ee71570e226d68a59dc0f529ae480d98b2db940ba11dd5c1826ae34792e1a418d6aa7885db29dc1a743560362bf2c487aab004d7cbfcc6b18e3caacd4b347fce136d45330e1d4c46fe80c3278e4de3c26ce78591b301e3754d5a355f526c0592b4a92202c89b502f314908d657a7f659043e69cae9117ae5c13cc048debf14206275877e1da136cf9101761c2328865b2cd424717c6f280930d2e3d6054870422f13baa5227ce14f3515fd4c52d12e0bbe6e40072480a22ecc13503c56deb7d5bd041631c21df099fdb18232ba43f3a10a35a41a48d8d302a539596b9cfbe2e068a35cdaf3816d302d13a819413bb40392c8c006209ff949fe1ca860c6b16a858314d500474bfd048f2cb1abc9ce7af1be103e0495990b42832373640ecbe320528f9d02d324987829c0326f1777d0d0ce3389f7882553b3ef89f9dc37048acf887b6b35e04cc25de2c77cce96fa467dd6efadfdb2ee32323a27820b2f8e7a62c91281d928e6febb2a9c9e0ee47025dfb27523a05a74dc536ad62cbe8ff8521414283d50412a5b625d072c35eb69a7c1bc0b9f4c374b8477083e1e9db8c697df92acc6c740e7446dbc09109bb97a94ee121f532bee3e265ca4f69bd0882e0e18bd9413b89f9608dd95ffba4232e9815a4c04b2e00924c1eda876898e680fb5657827ed3ca7f0eef7d7ab884a282ac80aa7b681dd0f3c47d63be5eb41867818c5c6c16043e6e9992afd805ba4a045e5868574abd6de7a82ee604c4c3659d683defacec051c24c4b10f58332f8eb626f4c98d1f27631cd96eb0c160c2c355708243c4c597b264562361237c739727be4f2450ef0f268996a109ff6e01027c17f9a4ae14a6e19a69397db0d5d7b9b86ab4207e59d950e66f47327a92be958af756e119b40fb4589357f903c48c84166b8cb037942d0a766efebc541c3a8d9df41c95c5170ebbc9c31eb9acbe37e484efb110a7407ca097f02b71998b3286f1d7d3b1524748a6aaeeac3b1a44e04338cfae03aa3b531faa6513c26e00a366721a8be06310748127d3e3fcfaa0b742a7e6830b67c7cc14add8f4a9b4a8f13ac749667ead30512dae85ad72c65a5f7571c6a26bfdc46a9087b2332abebccd00ce81e74d167eb9a0637d75a5e696fbff7468a90b49ed9f47232767fb57203a5ddca6af374eabd44d067c2626d2db6cf01701835ef35c53826965aeb7aa7b704b0637afcb988f25f36f5ff3d3b098e9ef1800156dc3728fd78cbdafc9e1dedfd663626c094c8d7cdb68e6dbaa68ebffa8dba2c887d8963b12b745887dba723e3aa8b84eaaed0ba74ce7526ba39d84c557c7e00ccf87daec36e21e9891ff8eb6bdcf1fc98180352195ef13eaf95814bd9347acfebf0402f0f46e7c56ab91a01fdd012e7cd12751bb66f76b133b9ce529481fac726d251c4943b2b631499bfa4c31095d99813d9b5072d343767b5403bf179a265d90eb98e9002abbaf578d454cb2bef1f25f74716d8b5863885c07409813a932a0ba147b1afe7e0b23649ed24bf293edc9bcd5280339cb3b9f233e3f6bd3016f7517a1803c41e5964c45a3e18e32daed353e1aa974bc59d3fbfc63f4e77c4cd00a7e454cde6cb92b665ba18e8758014656b46d37bf9263a0c70c610d3c16daa48d9fc72e75c0a68bd90b5f790405c670200683260ac45d86abe999467cb055aa9a51591b18bc91b680a31e25e3f399a1447ea7d39a001efc370ebb85453ee64acdf5365de0751af0aecdaf247d8a17faaf8e5c52797f6b3e385c0acc0b176114d2fd2fd29e86f7ab17c67bbf9502e160897bcb5003d135515a6f7baecada8cacfd439cb9fae3ee3fb1cf409a9384eee510f0f748942a252032e5e98f9ad6af675cde974195726dc66b3472298b943e55fde3975519987eec644831c19ffa8acb6763e5e4ded3c58765743398d16d337dd8eea7cf484869bb69a4a6ba5bf3e3a42a2d5ed4e4ca013e3e1a758bf36045a6a38da5ecfbc41bec2285bce7a0721cda16c07f5548e85f6d23161edb559150e4a2a79c732f44e7021c4921bc15242ac470b65ab1c48b773476d0eafc38657be1f17fa8f424f843e7a831a043590f8899e2c7035c4204334fda6697aacdb25a165a243f7a23db483031044298a01c1d0349bbdb2f654e187e6555e5881b8b160cb5d635f44c095335573f34d6c729521d5f5f290db9789441681fc6bcb047655f2c4e562a13a20f285bed5e7e6e6066b430ae1cd2173acc4fadc4757325ac638df0d96e5cd0c2927132de5d853d0b40abb4909f13400d6f8cda478ba82f51c59ce4175f35b20a630d893cc87261a6c820979461e86c0627169de0328456de1138811bbf75c772196b34ede6dcfb809c8274d571c9a6048257069aab36f3f30dce6ff87a8b75f6f9d1f1c082d1cd5b508c28b7e44434c446da9bae0551275b9727eafd5d1cb2027ba219e4add6c2c7ec89178df9a5c0ede540e96687c4042e2c043c54ed6ca8a622f0a471bc68520bc3b2d864a258229fd63b5b45750a5d6f9e549de3177349cc941e0defa4e7de7ced8524253cbe09f715390ef656e3281c41de148eba6a1b1c49f22a138548f99e6ffd4ecf7ce7fc72292766318d1e955894140b793828a8f218aca247bc0b512713d7bd5d4535f7e94c5c910b10d31a655614d6a51b849c2055d3f24f3eb445baa077deec951ef8211c98ae9aaa92fd16b9216198819493ff4aa45723980e8881b1c4dc82c9071325ebaea27a8153f575a444a6c2c9666d3bd01bb511fc8230401dd349bc5c59282adbca61b8e2b769647f432666aed9bba4da9d92e88a7508bf6fc22686d9b2ef0cbd017b57eef98209230593e0e85b9f816590870f00bfbd20eee65df6e07cd3509013d325f6014abcf5eb31f211ee16d3f7f1fb98fd880b653c6b0caad5aeb410a122216629ce14fe503a13ccba9a39d9321120b158c91d91870dd84285380e48815ac4d6750cc1d88b3aa6e45060edd66296a4ecf26cd18a0ad847c3338f337f338d288bd2f53b2cc4195d110744b1787b2611158e2576398de1b7cdb751332856c00fe2d470408e91871e062b40d919d384c14bb098a1e38f90ef42a2b72871cab517e03b3257ac436decc363a3dd3262b059974bac0a7e7d00f6d22bfad7ff4f12178b148f288ebfedb608f7c6513fa597b91a68b465c34dd2276e673de3e2d2bb77842a50c3e7f28a4a7dc156dba5970d4c7619f711697ac24ae96348a24e6661881bb65374dd1010ab0429da67b98e66a6f2abcf618e02d9b22633d84bab182368f8c9e3e97a1c218aef6fc0db4c5c3f968df07286d3edc9e54d5ebf5625b67f54a03bd348fe76dd37a1de1c3408ab4f50e8c8c2d23d4ae5c0ff00805628f909112506b9b0d9a2fcab13f351d7903d585ee472c2a920752e63a791154caed363fb3112ebcdb2d8d929d0b23ce00755dd53d07a27c1292733601a90c7f2fd2f491fff427e9db7e2bf3be9cc9eb4a50c84b5718c7d1aed1d171139cbe7c2ac54add1fcf14c6994e378546719abc9a63da7d42f086ba46f8db5586695f2ddab6b047db624befc9ff7c2fac01179e37bcc3e85933a6ad1f2eea8794b6b395aa6b154fd33697c593a52418b1af28ef3c4c49d8d47c263d7cd084191170ce0ef2165e1a4ef97bbf235cd3543df58d29abe1c7cb3522be2df8429f0ed46d6fae4406884b15cc417c4935262ba948e347cacf15cb760f0dbe46d63ea3c657c18ef3a27f29785cddca8ae205f777a5bd5551f31a496387958f16e93c3dafecc3045e3bfa1f7cb27c3435a4785e9926d1beb96ea4403a09d55c5d0889c747b5ca4a1e7a3aef274b261624ee22077a4a4a1aa8312b298a8467361232d2753a6baf461eb5efefd75e495d4b6bc184f6b3e7e78ec19466815f9a2a884bea97f46c92a57b4fbf57d9b92f59ea467fd80d9cfd9674000acbbeae1771145a0461a27892afc3f96efa16fefdcdb7fb0bfb51eb78ec628aa983e5ff23e8cfc6cef1641e396a19533015c0e3781c09482415fdfa9eac8caa0e0803af8338f163c6161c4bfe0487a4bb94d7990b8229e93819b5345beeac527e4bd7ca280e4461f7f1835bff0aebbdcde7321e15406feb0391af073071f4f6c4dbf543092bf41999f06249c3238a5ed5a7a1fc498f6ac9fb7cb083859f0b4d68d81fe3baafa161496b01847cb61a7c7f6483a82e41bb19adc91a19d472f7ac519e9ebc26bae23b14260d2f56508a1f9033824afb574568dd774cf8efde85ee1be644e414953533e28adcc7abe09c9c8eedcd0f5e645d37fce3d5843da9606b54f40b8442486159f58a29bd1ccdebe83f7cab234372fbaecdc40e4950063bc5b63736643dc61b1cdef63abef6be7887afb8ab959ef3c6213e47a523bb8fcae4899beda655ef82e5efde10eaaeaed24d9e0ae92567c8ee7f1e08d72eeaac181d0b4cd6c25eb67bd620d973fa9b72778d8681ea9bd3ff464645e8481a460dc73c097fd317aabc467349c4ff48b262b6c817af9757f2616905570f27fafc1f020f115eabceb76ac1ec0fd0aa4a6f9ecc1a31f2347bfa9f2a9a87714147d277ce6e6767582dc96a119ddfe7a4f174d5db04ef307a6c16c3a4aaf83ed093e6c8b3fffa0c940af18117b6f9ccc97752ad6dcaafb815ac663c611ea610fc5656ece9f059400ce5f8c51cc668028e55fabd06db39eb60532768d84aea8eab329b9d22fe88e3893d2982ac6ac331a62bcbb0da3edce20c3267146418be23a7348809a00d8bb8de0c81324226023d00c6aa3eaa97a35618dbdb7afa3ff1872a529ecb892e16546476f2d6d709548476fccf4f5b49d6757daa20ec3a06a45771947590</script>
  <div class="hbe hbe-content">
    <div class="hbe hbe-input hbe-input-wave">
      <input class="hbe hbe-input-field hbe-input-field-wave" type="password" id="hbePass">
      <label class="hbe hbe-input-label hbe-input-label-wave" for="hbePass">
        <span class="hbe hbe-input-label-content hbe-input-label-content-wave">文章被加密了, 请输入密码查看.</span>
      </label>
      <svg class="hbe hbe-graphic hbe-graphic-wave" width="300%" height="100%" viewBox="0 0 1200 60" preserveAspectRatio="none">
        <path d="M0,56.5c0,0,298.666,0,399.333,0C448.336,56.5,513.994,46,597,46c77.327,0,135,10.5,200.999,10.5c95.996,0,402.001,0,402.001,0"></path>
      </svg>
    </div>
  </div>
</div>
<script data-pjax src="/lib/hbe.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css">
    </div>

    
    
    
      


    <footer class="post-footer">
          <div class="reward-container">
  <div></div>
  <button>
    赞赏
  </button>
  <div class="post-reward">
      <div>
        <img src="/images/wechatpay.png" alt="Liu Kairui 微信">
        <span>微信</span>
      </div>
      <div>
        <img src="/images/alipay.png" alt="Liu Kairui 支付宝">
        <span>支付宝</span>
      </div>

  </div>
</div>

          

<div class="post-copyright">
<ul>
  <li class="post-copyright-author">
      <strong>本文作者： </strong>Liu Kairui
  </li>
  <li class="post-copyright-link">
      <strong>本文链接：</strong>
      <a href="http://liukairui.me/article/JavaScript%E7%BA%A2%E5%AE%9D%E4%B9%A6%E6%9F%A5%E6%BC%8F%E8%A1%A5%E7%BC%BA/" title="JavaScript红宝书查漏补缺🔒">http://liukairui.me/article/JavaScript红宝书查漏补缺/</a>
  </li>
  <li class="post-copyright-license">
    <strong>版权声明： </strong>本博客所有文章除特别声明外，均采用 <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh" rel="noopener" target="_blank"><i class="fab fa-fw fa-creative-commons"></i>BY-NC-SA</a> 许可协议。转载请注明出处！
  </li>
</ul>
</div>

          <div class="post-tags">
              <a href="/tags/%E5%89%8D%E7%AB%AF/" rel="tag"><i class="fa fa-tag"></i> 前端</a>
              <a href="/tags/JavaScript/" rel="tag"><i class="fa fa-tag"></i> JavaScript</a>
          </div>

        

          <div class="post-nav">
            <div class="post-nav-item">
                <a href="/article/JavaScript%E5%8F%98%E9%87%8F%E5%AD%98%E5%82%A8%E6%9C%BA%E5%88%B6/" rel="prev" title="JavaScript变量存储机制">
                  <i class="fa fa-chevron-left"></i> JavaScript变量存储机制
                </a>
            </div>
            <div class="post-nav-item">
                <a href="/article/JavaScript%E4%B8%A5%E6%A0%BC%E6%A8%A1%E5%BC%8F/" rel="next" title="JavaScript严格模式">
                  JavaScript严格模式 <i class="fa fa-chevron-right"></i>
                </a>
            </div>
          </div>
    </footer>
  </article>
</div>






    <div class="comments" id="valine-comments"></div>
</div>
  </main>

  <footer class="footer">
    <div class="footer-inner">


<div class="copyright">
  &copy; 2019 – 
  <span itemprop="copyrightYear">2022</span>
  <span class="with-love">
    <i class="fa fa-heart"></i>
  </span>
  <span class="author" itemprop="copyrightHolder">Liu Kairui</span>
</div>
<div class="busuanzi-count">
    <span class="post-meta-item" id="busuanzi_container_site_uv">
      <span class="post-meta-item-icon">
        <i class="fa fa-user"></i>
      </span>
      <span class="site-uv" title="总访客量">
        <span id="busuanzi_value_site_uv"></span>
      </span>
    </span>
    <span class="post-meta-item" id="busuanzi_container_site_pv">
      <span class="post-meta-item-icon">
        <i class="fa fa-eye"></i>
      </span>
      <span class="site-pv" title="总访问量">
        <span id="busuanzi_value_site_pv"></span>
      </span>
    </span>
</div>
  <div class="powered-by">由 <a href="https://hexo.io/" rel="noopener" target="_blank">Hexo</a> & <a href="https://theme-next.js.org/muse/" rel="noopener" target="_blank">NexT.Muse</a> 强力驱动
  </div>
  <div class="addthis_inline_share_toolbox">
    <script src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-6231eb6f709fc868" async="async"></script>
  </div><script
  async
  src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"
></script>

 
<script src="https://cdn.jsdelivr.net/npm/moment@2.22.2/moment.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/moment-precise-range-plugin@1.3.0/moment-precise-range.min.js"></script>
<script>
  function timer() {
    var ages = moment.preciseDiff(moment(),moment(20201101,"YYYYMMDD"));
    ages = ages.replace(/years?/, "年");
    ages = ages.replace(/months?/, "月");
    ages = ages.replace(/days?/, "天");
    ages = ages.replace(/hours?/, "小时");
    ages = ages.replace(/minutes?/, "分");
    ages = ages.replace(/seconds?/, "秒");
    ages = ages.replace(/\d+/g, '<span class="daysCnt" style="color:#1890ff">$&</span>');
    div.innerHTML = `我已在此等候你 ${ages}`;
    div.className="workDays";
  }
  var div = document.createElement("div");
  //插入到copyright之后
  var copyright = document.querySelector(".copyright");
  document.querySelector(".footer-inner").insertBefore(div, copyright.nextSibling);
  timer();
  setInterval("timer()",1000)
</script>



    </div>
  </footer>

  
  <script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/@next-theme/pjax@0.5.0/pjax.min.js" integrity="sha256-3NkoLDrmHLTYj7csHIZSr0MHAFTXth7Ua/DDt4MRUAg=" crossorigin="anonymous"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.min.js" integrity="sha256-yt2kYMy0w8AbtF89WXb2P1rfjcP/HTHLT7097U8Y5b8=" crossorigin="anonymous"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/lozad.js/1.16.0/lozad.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/pangu/4.0.7/pangu.min.js"></script>
<script src="/js/comments.js"></script><script src="/js/utils.js"></script><script src="/js/motion.js"></script><script src="/js/schemes/muse.js"></script><script src="/js/next-boot.js"></script><script src="/js/pjax.js"></script>

  
<script src="https://cdn.jsdelivr.net/npm/hexo-generator-searchdb@1.4.0/dist/search.js" integrity="sha256-vXZMYLEqsROAXkEw93GGIvaB2ab+QW6w3+1ahD9nXXA=" crossorigin="anonymous"></script>
<script src="/js/third-party/search/local-search.js"></script>


  <script class="next-config" data-name="mermaid" type="application/json">{"enable":true,"theme":"forest","js":{"url":"https://cdnjs.cloudflare.com/ajax/libs/mermaid/8.14.0/mermaid.min.js","integrity":"sha256-7wT34TI0pEBeEFoi4z+vhuSddGh6vUTMWdqJ2SDe2jg="}}</script>
  <script src="/js/third-party/tags/mermaid.js"></script>

  <script src="/js/third-party/fancybox.js"></script>

  <script src="/js/third-party/pace.js"></script>

  
  <script data-pjax async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>


  <script class="next-config" data-name="leancloud_visitors" type="application/json">{"enable":true,"app_id":"ABKlVtS4cyaWYEwunPyK3sXt-9Nh9j0Va","app_key":"xxGXdTTEGEVifs2TLB35844I","server_url":"https://abklvts4.lc-cn-e1-shared.com","security":false}</script>
  <script src="/js/third-party/statistics/lean-analytics.js"></script>


  

  <script class="next-config" data-name="enableMath" type="application/json">true</script><script class="next-config" data-name="mathjax" type="application/json">{"enable":true,"tags":"none","mhchem":true,"js":{"url":"https://cdnjs.cloudflare.com/ajax/libs/mathjax/3.2.0/es5/tex-mml-chtml.min.js"}}</script>
<script src="/js/third-party/math/mathjax.js"></script>


  <script src="https://cdnjs.cloudflare.com/ajax/libs/quicklink/2.2.0/quicklink.umd.js" integrity="sha256-4kQf9z5ntdQrzsBC3YSHnEz02Z9C1UeW/E9OgnvlzSY=" crossorigin="anonymous"></script>
  <script class="next-config" data-name="quicklink" type="application/json">{"enable":true,"home":false,"archive":false,"delay":true,"timeout":3000,"priority":true,"url":"http://liukairui.me/article/JavaScript%E7%BA%A2%E5%AE%9D%E4%B9%A6%E6%9F%A5%E6%BC%8F%E8%A1%A5%E7%BC%BA/"}</script>
  <script src="/js/third-party/quicklink.js"></script>
<script src="https://cdn.jsdelivr.net/npm/darkmode-js@1.5.7/lib/darkmode-js.min.js"></script>

<script>
var options = {
  bottom: '64px',
  right: 'unset',
  left: '32px',
  time: '0.5s',
  mixColor: 'transparent',
  backgroundColor: 'transparent',
  buttonColorDark: '#100f2c',
  buttonColorLight: '#fff',
  saveInCookies: true,
  label: '🌓',
  autoMatchOsTheme: true
}
const darkmode = new Darkmode(options);
window.darkmode = darkmode;
darkmode.showWidget();
</script>


<script class="next-config" data-name="valine" type="application/json">{"enable":true,"appId":"ABKlVtS4cyaWYEwunPyK3sXt-9Nh9j0Va","appKey":"xxGXdTTEGEVifs2TLB35844I","serverURLs":"https://abklvts4.lc-cn-e1-shared.com","placeholder":"请开始你的表演","avatar":"identicon","meta":["nick","mail","link"],"pageSize":10,"lang":"zh-CN","visitor":false,"comment_count":true,"recordIP":true,"enableQQ":true,"requiredFields":[],"el":"#valine-comments","path":"/article/JavaScript%E7%BA%A2%E5%AE%9D%E4%B9%A6%E6%9F%A5%E6%BC%8F%E8%A1%A5%E7%BC%BA/"}</script>
<script>
document.addEventListener('page:loaded', () => {
  NexT.utils.loadComments(CONFIG.valine.el)
    .then(() => NexT.utils.getScript(
      'https://cdn.jsdelivr.net/npm/valine@1.4.14/dist/Valine.min.js',
      { condition: window.Valine }
    ))
    .then(() => {
      new Valine(CONFIG.valine);
    });
});
</script>


  <script async src="/js/fireworks.js"></script>




  <script src="/js/activate-power-mode.min.js"></script>
  <script>
    POWERMODE.colorful = true;
    POWERMODE.shake = false;
    document.body.addEventListener('input', POWERMODE);
  </script>




  <script src="/js/wobblewindow.js"></script>
  <script>
    //只在桌面版网页启用特效 记得同步到header.njk
    if( window.innerWidth > 768  ){
      $(document).ready(function () {
        
          $('body>main>header').wobbleWindow({
            radius: 50,
            movementTop: false,
            movementLeft: false,
            movementRight: false,
            debug: false,
          });
        

        //
        //  $('body header>aside').wobbleWindow({
        //    radius: 50,
        //    movementLeft: false,
        //    movementTop: false,
        //    movementBottom: false,
        //    position: 'fixed',
        //    debug: false,
        //  });
        //

        
          $('body>footer').wobbleWindow({
            radius: 50,
            movementBottom: false,
            movementLeft: false,
            movementRight: false,
            debug: false,
          });
        
      });
    }
  </script>


 
<script>
  $(document).ready(function(){
    var beian = document.querySelector(".footer-inner > .beian > a");
    var cpr=document.querySelector(".footer-inner > .copyright");
    var cnz=document.querySelector(".workDays");//.parentNode;
    var bsz=document.querySelector(".busuanzi-count");
    if(cnz!=null&&bsz!=null)
      cnz.parentNode.insertBefore(bsz,cnz);
    if(bsz == null || bsz == undefined || document.querySelector("#busuanzi_value_site_pv").innerText=="" || document.querySelector("#busuanzi_value_site_uv").innerText == "")
      bsz.remove();
    checkIndex();
    if(beian){cpr.classList.add('split-line');cpr.appendChild(beian);}
  })
  $(document).on('pjax:complete',checkIndex);
</script>



<script src="/live2dw/lib/L2Dwidget.min.js?094cbace49a39548bed64abff5988b05"></script><script>L2Dwidget.init({"pluginRootPath":"live2dw/","pluginJsPath":"lib/","pluginModelPath":"assets/","tagMode":false,"log":false,"model":{"jsonPath":"/live2dw/assets/hijiki.model.json"},"display":{"position":"right","width":150,"height":300},"mobile":{"show":false},"react":{"opacity":0.7}});</script></body>
</html>
